J.U.C之BlockingQueue

BlockingQueue

  • 不僅擁有隊(duì)列的完整功能杯聚,在多線程條件下,還管理多線程間的自動(dòng)等待营密,喚醒等功能械媒;
  • 在某些情況下對(duì)阻塞隊(duì)列的訪問可能造成阻塞,被阻塞的情況主要有2種:
    • 當(dāng)一個(gè)線程試圖對(duì)一個(gè)已經(jīng)滿了的隊(duì)列進(jìn)行入隊(duì)操作评汰,其將被阻塞纷捞,除非有另一個(gè)線程做了出隊(duì)列操作;
    • 當(dāng)一個(gè)線程試圖對(duì)一個(gè)空隊(duì)列進(jìn)行出隊(duì)操作被去,其將被阻塞主儡,除非有另一個(gè)線程做了入隊(duì)列操作;
  • 阻塞隊(duì)列是線程安全的惨缆;
  • 主要用在生產(chǎn)者/消費(fèi)者場(chǎng)景糜值,負(fù)責(zé)生產(chǎn)的線程不斷制造新對(duì)象并插入到阻塞隊(duì)列丰捷,直到到達(dá)隊(duì)列的上限值,生產(chǎn)線程將被阻塞寂汇,直到消費(fèi)者線程開始消費(fèi)病往;負(fù)責(zé)消費(fèi)的線程不斷從隊(duì)列中消費(fèi)對(duì)象,直到隊(duì)列為空骄瓣,消費(fèi)線程將被阻塞停巷,除非隊(duì)列中有新的對(duì)向插入;

BlockingQueue的實(shí)現(xiàn)類

  • ArrayBlockingQueue:有界的阻塞隊(duì)列(容量有限榕栏,必須在初始化的時(shí)候指定容量大小畔勤,一旦指定就無(wú)法修改),內(nèi)部實(shí)現(xiàn)是數(shù)組扒磁,以先進(jìn)先出的方式存儲(chǔ)數(shù)據(jù)庆揪;
  • DelayQueue:其中元素必須實(shí)現(xiàn)java.util.concurrent.Delayed接口,其中元素是要可比的妨托,一般以過(guò)期時(shí)間作為排序規(guī)則缸榛;
  • LinkedBlockingQueue:大小可選,如果初始化的時(shí)候指定大小就是有邊界的始鱼,如果沒有指定大小就是無(wú)邊界的仔掸,先進(jìn)先出脆贵;
  • PriorityBlockingQueue:帶優(yōu)先級(jí)的阻塞隊(duì)列医清,無(wú)邊界,有排序規(guī)則卖氨,允許插入null会烙,所有插入進(jìn)PriorityBlockingQueue的對(duì)象要求實(shí)現(xiàn)Comparable接口,可以從PriorityBlockingQueue中獲得一個(gè)迭代器筒捺,但迭代器并不保證按優(yōu)先級(jí)順序進(jìn)行迭代柏腻;
  • SynchronousQueue:內(nèi)部?jī)H允許容納一個(gè)元素,當(dāng)一個(gè)線程插入一個(gè)元素時(shí)就會(huì)被阻塞系吭,除非這個(gè)元素被另一個(gè)線程消費(fèi)五嫂;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市肯尺,隨后出現(xiàn)的幾起案子沃缘,更是在濱河造成了極大的恐慌,老刑警劉巖则吟,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件槐臀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡氓仲,警方通過(guò)查閱死者的電腦和手機(jī)水慨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門得糜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人晰洒,你說(shuō)我怎么就攤上這事朝抖。” “怎么了谍珊?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵槽棍,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我抬驴,道長(zhǎng)炼七,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任布持,我火速辦了婚禮豌拙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘题暖。我一直安慰自己按傅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布胧卤。 她就那樣靜靜地躺著唯绍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枝誊。 梳的紋絲不亂的頭發(fā)上况芒,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天,我揣著相機(jī)與錄音叶撒,去河邊找鬼绝骚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛祠够,可吹牛的內(nèi)容都是我干的压汪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼古瓤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼止剖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起落君,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤穿香,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后叽奥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扔水,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年朝氓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了魔市。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片主届。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖待德,靈堂內(nèi)的尸體忽然破棺而出君丁,到底是詐尸還是另有隱情,我是刑警寧澤将宪,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布绘闷,位于F島的核電站,受9級(jí)特大地震影響较坛,放射性物質(zhì)發(fā)生泄漏印蔗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一丑勤、第九天 我趴在偏房一處隱蔽的房頂上張望华嘹。 院中可真熱鬧,春花似錦法竞、人聲如沸耙厚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)薛躬。三九已至,卻和暖如春呆细,著一層夾襖步出監(jiān)牢的瞬間型宝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工侦鹏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诡曙,地道東北人臀叙。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓略水,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親劝萤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渊涝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容