JUC中的集合類(lèi)

轉(zhuǎn)載

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框架
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容