Collection集合中的Queue

一個含義:就是隊列,一個先進先出的數據結構

兩套實現:一個是ConcurrentLinkedQueue為代表的高性能隊列,一個是以BlockingQueue接口為代表的阻塞隊

ConcurrentLinkedQueue

適合於高併發場景下的隊列,通過無鎖的方式,實現了高併發狀態下的高性能,基於鏈接節點的無界線程安全隊列,隊列不允許null元素

方法:

add()、offer() //添加元素

poll()、peek() //從首部取元素其中poll()會刪除該節點

BlockingQueue

* ArrayBlockingQueue :數組支持的有界隊列,其內部沒實現讀寫分離

* LinkedBlockingQueue :鏈接節點支持的可選(無界)隊列,其內部實現採用分離鎖,可以並行運行

* PriorityBlockingQueue :優先級堆支持的無界優先級隊列,內部控制線程同步的採用公平鎖

* DelayQueue :優先級堆支持的、基於時間的調度隊列,帶有延遲,經常應用於對緩存超時的數據進行移除、任務超時處理、空閒連接的關閉等等

* SynchronousQueue :一個利用 BlockingQueue 接口的簡單聚集,無緩衝的隊列,不允許添加任何元素

Collection集合中的Queue


分享到:


相關文章: