乙個BlockingQueue的小demo

2021-09-29 11:07:07 字數 858 閱讀 1507

使用佇列遇到問題,總感覺它阻塞後不能成功解除,所以寫了個demo,實時證明queue是沒有問題的,自己遇到的問題要從其它地方排查原因。

下面例子可以看到,呼叫queue.take()的時候會阻塞該執行緒,在另乙個執行緒裡給queue put進元素以後,queue.take()的阻塞會自動解除,執行queue.take()之後的**。

public class testqueue 

static void putelement(string s)

// }).start();

}static string takeelement() catch (interruptedexception e) }}

}).start();

return null;

}public static void main(string args) catch (interruptedexception e)

}}

執行結果

offer:a

offer:b

嘗試take:

a嘗試take:

b嘗試take:

offer:c

c嘗試take:

d嘗試take:

offer:d

或者

offer:a

offer:b

嘗試take:

a嘗試take:

b嘗試take:

offer:c

offer:d

c嘗試take:

d嘗試take:

列印順序不同是因為執行緒原因。能夠測試想要的結果。

BlockingQueue實現類 一

這一系列主要聚焦blockingqueue的實現類,稱之為阻塞佇列,到底代表什麼含義,我們不打算從註發布發,從實現類出發,第乙個分析arrayblockingqueue。從構造方法出發。public arrayblockingqueue int capacity,boolean fair 還是從of...

乙個決定,乙個轉折

距離2012年9月已經是第四個年頭,對於我,我想這是我這輩子做的第一件我很自豪,很開心的乙個決定,從生物轉向計算機,一直以來,我對自己的期望總是很高,比如說上高中的時候,希望自己至少考個二本,學習個自己喜歡的專業,然後為之奮鬥,有乙個非常激動人心的大學四年,再比如說以後賺很多很多錢,擁有屬於自己的公...

乙個建築挽救乙個城市

熊大尋創意建築設計公司認為 中國城市化和城市建設浪潮前所未有地吸引了史上最多的外國建築大師湧入中國。中國各大城市充滿了欲與天公試比高的高樓大廈。一幢幢玻璃大廈拔地而起,一座座奇形怪狀的建築安家東方大地。在這場城市建設的洋務運動中,中國市民不僅失去了自己的熟悉的故宅家園,更重要的是身邊越來越多看不懂的...