wait()拾酝、notify()、notifyAll()方法測試卡者,并非像你想象的那樣

之前不管讀任何書蒿囤,都告訴你wait方法阻塞,notify是隨機喚醒一個崇决,notifyAll方法是一次喚醒所有材诽。我想大部分人在實際面試時候也是這樣回答的底挫,但是我今天做了個小小的測試,發(fā)現(xiàn)事實并非如此脸侥,此疑問來自http://www.reibang.com/p/f4454164c017文章建邓。

該文中提到,notify實際是喚醒的第一個進入阻塞列表的線程睁枕,我也比較疑惑官边,于是寫了個小demo測試。

思路如下外遇,先依次創(chuàng)建100個線程進入wait隊列注簿,然后在創(chuàng)建一百個線程去依次喚醒,然后再此時一次喚醒所有跳仿。不多說直接貼代碼:

先來第一個 ?100次wait诡渴,100次notify,在阻塞時候讓線程休眠100秒是為了保證順序進入阻塞隊列塔嬉,


下面是結(jié)果玩徊,


看到?jīng)]有,都是成對出現(xiàn)的谨究,也就是喚醒的線程總是喚醒按順序入隊時候的線程。你們可以自己測試泣棋,我測試了很多次一直都是一個結(jié)果胶哲。這里如果把喚醒的for循環(huán)去掉,只喚醒一個潭辈,我試了很多次一直都是喚醒的是線程0鸯屿,也就是第一個進入阻塞隊列的。如果是隨機喚醒把敢,那么背喚醒的線程就不應該是順序入隊的情況呀寄摆。

我們下面測試notifyAll()

代碼稍稍更改下


下面是輸出結(jié)果


結(jié)果卻是倒敘的。我測試了多次修赞,依然是倒敘婶恼,然后同樣把阻塞后面的沉睡100毫秒睡眠去掉后多次測試


發(fā)現(xiàn)依然是倒敘輸出,測試多次柏副,沒有改變勾邦。難道書上都是錯的嗎?

我們繼續(xù)把創(chuàng)建線程時候的睡眠時間去掉割择,在阻塞前輸出當前入隊阻塞的線程號眷篇,然后依次喚醒所有看輸出順序和入隊順序是否逆一致?


被喚醒的線程順序是:


我們發(fā)現(xiàn)驚奇的一致荔泳,notify是按照入隊阻塞的逆序一致性進行喚醒操作的蕉饼。

到這里大家明白了沒虐杯?

我僅僅是工作不到一年的小白,如果我的測試有錯誤昧港,還請指正厦幅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市慨飘,隨后出現(xiàn)的幾起案子确憨,更是在濱河造成了極大的恐慌,老刑警劉巖瓤的,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件休弃,死亡現(xiàn)場離奇詭異,居然都是意外死亡圈膏,警方通過查閱死者的電腦和手機塔猾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稽坤,“玉大人丈甸,你說我怎么就攤上這事∧蛲剩” “怎么了睦擂?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長杖玲。 經(jīng)常有香客問我顿仇,道長,這世上最難降的妖魔是什么摆马? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任臼闻,我火速辦了婚禮,結(jié)果婚禮上囤采,老公的妹妹穿的比我還像新娘述呐。我一直安慰自己,他們只是感情好蕉毯,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布乓搬。 她就那樣靜靜地躺著,像睡著了一般恕刘。 火紅的嫁衣襯著肌膚如雪缤谎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天褐着,我揣著相機與錄音坷澡,去河邊找鬼。 笑死含蓉,一個胖子當著我的面吹牛频敛,可吹牛的內(nèi)容都是我干的项郊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼斟赚,長吁一口氣:“原來是場噩夢啊……” “哼着降!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拗军,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤任洞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后发侵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體交掏,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年刃鳄,在試婚紗的時候發(fā)現(xiàn)自己被綠了盅弛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡叔锐,死狀恐怖挪鹏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情愉烙,我是刑警寧澤讨盒,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站齿梁,受9級特大地震影響催植,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勺择,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伦忠。 院中可真熱鬧省核,春花似錦、人聲如沸昆码。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赋咽。三九已至旧噪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脓匿,已是汗流浹背淘钟。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陪毡,地道東北人米母。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓勾扭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親铁瞒。 傳聞我的和親對象是個殘疾皇子妙色,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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