List和Set
JUC集合中的list和set類(lèi)如下:
- CopyOnWriteArrayList:相當(dāng)于線程安全的ArrayList,實(shí)現(xiàn)了List接口,支持高并發(fā)
- CopyOnWriteArraySet:相當(dāng)于線程安全的HashSet,它繼承于AbstractSet類(lèi),其內(nèi)部是通過(guò)CopyOnWriteArrayList來(lái)實(shí)現(xiàn)的
- ConcurrentSkipListSet:相當(dāng)于線程安全的TreeSet,它繼承于AbstractSet類(lèi),并實(shí)現(xiàn)了NavigableSet接口,其內(nèi)部是通過(guò)ConcurrentSkipHashMap實(shí)現(xiàn)的,支持高并發(fā)
CopyOnWriteArrayList和CopyOnWriteArraySet框架.png
Map
JUC集合中的map的實(shí)現(xiàn)類(lèi)如下:
- ConcurrentHashMap:相當(dāng)于線程安全的HashMap,它繼承于AbstractMap類(lèi),并且實(shí)現(xiàn)ConcurrentMap接口。ConcurrentHashMap是通過(guò)“分段鎖”來(lái)實(shí)現(xiàn)并發(fā)的
- ConcurrentSkipListMap:相當(dāng)于線程安全的TreeSet,它繼承于AbstractSet,并實(shí)現(xiàn)了ConcurrentNavigableMap接口。ConcurrentSkipListMap是通過(guò)“跳表”來(lái)實(shí)現(xiàn)并發(fā)的
JUC之Map框架.png
Queue
JUC集合中Queue的實(shí)現(xiàn)類(lèi)如下:
- ArrayBlockingQueue是數(shù)組實(shí)現(xiàn)的線程安全的有界的阻塞隊(duì)列
- LinkedBlockingQueue是單向鏈表實(shí)現(xiàn)的(指定大小)阻塞隊(duì)列,該隊(duì)列按 FIFO(先進(jìn)先出)排序元素。
- LinkedBlockingDeque是雙向鏈表實(shí)現(xiàn)的(指定大小)雙向并發(fā)阻塞隊(duì)列,該阻塞隊(duì)列同時(shí)支持FIFO和FILO兩種操作方式。
- ConcurrentLinkedQueue是單向鏈表實(shí)現(xiàn)的無(wú)界隊(duì)列,該隊(duì)列按 FIFO(先進(jìn)先出)排序元素。
- ConcurrentLinkedDeque是雙向鏈表實(shí)現(xiàn)的無(wú)界隊(duì)列,該隊(duì)列同時(shí)支持FIFO和FILO兩種操作方式。
JUC之Queue框架