List和Set
JUC集合中的list和set类如下:
- CopyOnWriteArrayList:相当于线程安全的ArrayList,实现了List接口,支持高并发
- CopyOnWriteArraySet:相当于线程安全的HashSet,它继承于AbstractSet类,其内部是通过CopyOnWriteArrayList来实现的
- ConcurrentSkipListSet:相当于线程安全的TreeSet,它继承于AbstractSet类,并实现了NavigableSet接口,其内部是通过ConcurrentSkipHashMap实现的,支持高并发
Map
JUC集合中的map的实现类如下:
- ConcurrentHashMap:相当于线程安全的HashMap,它继承于AbstractMap类,并且实现ConcurrentMap接口。ConcurrentHashMap是通过“分段锁”来实现并发的
- ConcurrentSkipListMap:相当于线程安全的TreeSet,它继承于AbstractSet,并实现了ConcurrentNavigableMap接口。ConcurrentSkipListMap是通过“跳表”来实现并发的
Queue
JUC集合中Queue的实现类如下:
- ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列
- LinkedBlockingQueue是单向链表实现的(指定大小)阻塞队列,该队列按 FIFO(先进先出)排序元素。
- LinkedBlockingDeque是双向链表实现的(指定大小)双向并发阻塞队列,该阻塞队列同时支持FIFO和FILO两种操作方式。
- ConcurrentLinkedQueue是单向链表实现的无界队列,该队列按 FIFO(先进先出)排序元素。
- ConcurrentLinkedDeque是双向链表实现的无界队列,该队列同时支持FIFO和FILO两种操作方式。