BlockingQueue阻塞佇列的簡單使用

2021-08-30 11:22:23 字數 554 閱讀 6007

blockingqueue是佇列的基礎上加上阻塞操作。佇列中沒有資料時從隊頭取資料會被阻塞,佇列中有資料了就會被被阻塞的執行緒取出資料,資料會被釋放。若佇列有容量限制,容量滿的話插入資料會被阻塞,有空閒位置才能插入資料。

示例**如下:

public class blockingqueuetest catch (interruptedexception e) }}

}.start();

} new thread() catch (interruptedexception e) }}

}.start();

}}

執行結果如下:

thread-2準備取資料!

thread-1準備放資料!

thread-1已經放了資料,佇列目前有1個資料

thread-2已經取了資料,佇列目前有0個資料

thread-2準備取資料!

thread-0準備放資料!

thread-0已經放了資料,佇列目前有1個資料

thread-2已經取了資料,佇列目前有0個資料

阻塞佇列BlockingQueue

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

阻塞佇列BlockingQueue

1 佇列queue介紹 queue是jdk1.5引入的介面,繼承collection介面,是collection框架的新成員,是種先進先出 fifo 的佇列。public inte ce queueextends collection除了基本的collection操作外,佇列還提供其他的插入 提取和...

阻塞佇列 BlockingQueue

阻塞佇列 blockingqueue 是乙個支援兩個附加操作的佇列。這兩個附加的操作是 在隊列為空時,獲取元素的執行緒會等待佇列變為非空。當佇列滿時,儲存元素的執行緒會等待佇列可用。阻塞佇列常用於生產者和消費者的場景,生產者是往佇列裡新增元素的執行緒,消費者是從佇列裡拿元素的執行緒。阻塞佇列就是生產...