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