阻塞佇列BlockingQueue

2021-10-17 03:43:13 字數 752 閱讀 2080

一 上層介面blockingqueue

add(e):新增乙個元素,佇列滿了,則丟擲異常

element :返回隊頭元素,佇列空了,拋異常

offer  新增乙個元素並返回true ,佇列滿了返回false

peek 返回對頭元素 ,空---返回null

poll 移除並返回對頭元素   空---返回null

put 新增乙個元素  如果佇列滿則阻塞

remove 移除並返回對頭元素   空------拋異常

take   移除並返回對頭元素  空----阻塞

二  arrayblockingqueue

(1)構造乙個有指定的容量和公平性的阻塞佇列,隊列為乙個迴圈資料

(2)arrayblockingqueue(int capacity,boolean fair)

三 linkedblockingqueue與linkedblockingdeque

(1)構造乙個無上限的阻塞佇列或者雙向佇列,底層是鍊錶

(2)linkedblockingqueue(int capacity)  構建乙個有限的阻塞佇列與雙向佇列

四 delayqueue()

(1)構造乙個包含delayed元素的無上限阻塞佇列

(2)只有到期的元素才可以移除

五 priorityblockingqueue

(1)構造乙個無上限阻塞優先佇列,實現為乙個堆

(2)初始容量為11,沒有指定比較器,元素必須實現comparable介面

併發工具包 阻塞佇列BlockingQueue

阻塞佇列,顧名思義 如果佇列滿了,那麼會進入阻塞狀態,當有消費者從佇列中取出資料後,再解除阻塞狀態。如果隊列為空,從佇列中取資料就會進入阻塞狀態。直至佇列中有資料為止。blockingqueue是介面,目前已知的實現類如下 arrayblockingqueue 底層底層通過陣列來儲存佇列中的元素,所...

等待佇列 阻塞非阻塞

阻塞 裝置驅動不阻塞,使用者想獲取裝置資源只能不停的查詢,這無謂的消耗cpu資源。而阻塞訪問,不能獲取資源的程序將進入休眠,它將cpu資源 禮讓 給其他程序 喚醒程序的地方最大可能發生在中斷裡面,因為硬體資源獲得的同時往往伴隨著乙個中斷 定義頭 wait queue head t queue 初始化...

阻塞佇列BlockingQueue

例介紹乙個特殊的佇列 blockingqueue,如果blockingqueue是空的,從blockingqueue取東西的操作將會被阻斷進入等待狀態,直到blockingqueue進了東西才會被喚醒,同樣,如果blockingqueue是滿的,任何試圖往裡存東西的操作也會被阻斷進入等待狀態,直到b...