wait瘫里、notify凌简、sleep肿轨、interrupt等對比分析

# 方法簡述

# Thread類

  • sleep:暫停當前正在執(zhí)行的線程(類方法)
  • yield:暫停當前正在執(zhí)行的線程寿冕,并執(zhí)行其他線程(類方法)
  • join:等待該線程終止
  • interrupt:中斷該線程,當線程調(diào)用wait()椒袍,sleep()驼唱,join(),或I/O操作時驹暑,將收到InterruptedException或ClosedByInterruptException玫恳;

# Object類

  • wait:暫停當前正在執(zhí)行的線程,知道調(diào)用notify()或notifyAll()方法或超時优俘,退出等待狀態(tài)京办;
  • notify:喚醒在該對象上等待的一個線程;
  • notifyAll:喚醒在該對象上等待的所有線程帆焕;

# 詳細分析

# sleep vs wait

sleep()和wait()方法都是暫停當前正在執(zhí)行的線程惭婿,出讓CPU資源

# wait&&notify

調(diào)用對象的wait()、notify()叶雹、notifyAll()方法的線程财饥,必須是作為此對象監(jiān)視器的所有者。常見的場景就是synchronized關(guān)鍵字的語句塊內(nèi)部使用者3個方法折晦,如果直接在線程中使用wait()钥星、notify()、notifyAll()方法满着,那么會拋出異常IllegalMonitorException谦炒,拋出的異常表明某一線程已經(jīng)試圖等待對象的監(jiān)視器贯莺,或者試圖通知其他正在等待對象的監(jiān)視器而本身沒有指定監(jiān)視器的線程。

調(diào)用wait()方法的線程编饺,在調(diào)用該線程的interrupt()方法乖篷,則會重新嘗試獲取對象鎖。只有當獲取到對象鎖透且,才開始拋出相應的異常撕蔼,則執(zhí)行該線程之后的程序。

# interrupt

interrupt()方法的工作僅僅是改變中斷狀態(tài)秽誊,并不是直接中斷正在運行的線程鲸沮。中斷的真正原理是當線程被Object.wait()、Thread.join()或Thread.sleep()方法阻塞時锅论,調(diào)用interrupt()方法后改變中斷狀態(tài)讼溺,而wait/join/sleep這些方法內(nèi)部會不斷地檢查線程的中斷狀態(tài)值,當發(fā)現(xiàn)中斷狀態(tài)值時則拋出InterruptException異常最易;對于沒有阻塞的線程怒坯,調(diào)用interrupt()方法時沒有任何作用的。

# yield

yield()方法使當前線程出讓CPU執(zhí)行時間藻懒,當并不會釋放當前線程所持有的鎖剔猿。執(zhí)行完yield()方法后,線程從Running狀態(tài)轉(zhuǎn)變?yōu)镽unable狀態(tài)嬉荆,既然是Runnable狀態(tài)归敬,那么也很可能馬上會被CPU調(diào)度再次進入Running狀態(tài)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鄙早,一起剝皮案震驚了整個濱河市汪茧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌限番,老刑警劉巖舱污,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異弥虐,居然都是意外死亡慌闭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門躯舔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驴剔,“玉大人,你說我怎么就攤上這事粥庄∩ナВ” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵惜互,是天一觀的道長布讹。 經(jīng)常有香客問我琳拭,道長,這世上最難降的妖魔是什么描验? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任白嘁,我火速辦了婚禮,結(jié)果婚禮上膘流,老公的妹妹穿的比我還像新娘絮缅。我一直安慰自己,他們只是感情好呼股,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布耕魄。 她就那樣靜靜地躺著,像睡著了一般彭谁。 火紅的嫁衣襯著肌膚如雪吸奴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天缠局,我揣著相機與錄音则奥,去河邊找鬼。 笑死狭园,一個胖子當著我的面吹牛读处,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妙啃,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼俊戳!你這毒婦竟也來了揖赴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤抑胎,失蹤者是張志新(化名)和其女友劉穎燥滑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阿逃,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡铭拧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恃锉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搀菩。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖破托,靈堂內(nèi)的尸體忽然破棺而出肪跋,到底是詐尸還是另有隱情,我是刑警寧澤土砂,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布州既,位于F島的核電站谜洽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吴叶。R本人自食惡果不足惜阐虚,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚌卤。 院中可真熱鬧实束,春花似錦、人聲如沸造寝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诫龙。三九已至析显,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間签赃,已是汗流浹背谷异。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锦聊,地道東北人歹嘹。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像孔庭,于是被迫代替她去往敵國和親尺上。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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