(四)wait/notify

一 、等待/通知機(jī)制介紹?

兩線程存在生產(chǎn)和消費(fèi)者關(guān)系液荸,如while,問題:不停輪詢機(jī)脱篙。浪費(fèi)CPU娇钱,間隔太大取不到。(wait/notify)解決

線程A調(diào)用對象O的wait()進(jìn)入等待狀態(tài)绊困,B調(diào)用對象Onotify()/notifyAll()文搂,A收通知后退出等待隊(duì)列,運(yùn)行

相關(guān)方法

notify() 通知“一個(gè)線程”

notifyAll():?“全部線程”?退出等待秤朗,優(yōu)先級煤蹭、隨機(jī)執(zhí)行,取決于JVM

wait():釋放共享資源鎖取视,等待硝皂,直到被喚醒

wait(long)n毫秒,沒有通知就超時(shí)返回????wait(long作谭,int)納秒

二 等待/通知機(jī)制的實(shí)現(xiàn)?

從運(yùn)行結(jié)果:”wait end 1521967322359”最后輸出可以看出稽物,notify()執(zhí)行后并不會立即釋放鎖。先進(jìn)入就緒折欠,再嘗試獲取

2.2? 線程基本狀態(tài)

2.?可運(yùn)行(runnable):start()進(jìn)運(yùn)行線程池姨裸,等待被線程調(diào)度選中,獲取cpu使用權(quán)怨酝。?

4.?阻塞(block):放棄cpu使用權(quán)傀缩,讓出cpu timeslice,分三種:

? ??等待阻塞:執(zhí)行o.wait()农猬,JVM把該線程放入waitting queue

????同步阻塞:同步鎖被占用赡艰,放鎖池lock pool

????其他阻塞: 運(yùn)行線程執(zhí)行sleep(long ms)或t.join(),或者發(fā)出I/O請求時(shí)斤葱,JVM把線程置為阻塞慷垮。處理完畢轉(zhuǎn)入runnable

5.?死亡(dead):run()、main()結(jié)束揍堕,異常退出了run()方法料身,不可再次復(fù)生。

2.3 notify()鎖不釋放

當(dāng)方法wait()被執(zhí)行后衩茸,鎖自動被釋放芹血,但執(zhí)行完notify()方法后,鎖不會自動釋放。必須執(zhí)行完notify()方法所在的synchronized代碼塊后才釋放幔烛。

https://github.com/Snailclimb/threadDemo/tree/master/src/wait_notifyHoldLock

三個(gè)同對象實(shí)例線程a,b,c:a執(zhí)行帶wait方法synchronized代碼塊啃擦、b,c執(zhí)行帶notify方法synchronized代碼塊

2.4 當(dāng)interrupt方法遇到wait方法

wait時(shí)饿悬,調(diào)用interrupt出現(xiàn)InterrupedException

Test.java

運(yùn)行結(jié)果:?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末令蛉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子狡恬,更是在濱河造成了極大的恐慌珠叔,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弟劲,死亡現(xiàn)場離奇詭異运杭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)函卒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門辆憔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人报嵌,你說我怎么就攤上這事虱咧。” “怎么了锚国?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵腕巡,是天一觀的道長。 經(jīng)常有香客問我血筑,道長绘沉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任豺总,我火速辦了婚禮车伞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喻喳。我一直安慰自己另玖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布表伦。 她就那樣靜靜地躺著谦去,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹦哼。 梳的紋絲不亂的頭發(fā)上鳄哭,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機(jī)與錄音纲熏,去河邊找鬼妆丘。 笑死锄俄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的飘痛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼容握,長吁一口氣:“原來是場噩夢啊……” “哼宣脉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剔氏,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤塑猖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后谈跛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羊苟,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年感憾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜡励。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阻桅,死狀恐怖凉倚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嫂沉,我是刑警寧澤稽寒,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站趟章,受9級特大地震影響杏糙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚓土,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一宏侍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蜀漆,春花似錦负芋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蠕嫁,卻和暖如春锨天,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剃毒。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工病袄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搂赋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓益缠,卻偏偏與公主長得像脑奠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子幅慌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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