BLOCKED,WAITING,TIMED_WAITING有什么區(qū)別椒功?-用生活的例子解釋

原文地址:
https://dzone.com/articles/di...

BLOCKED,WAITING和TIMED_WAITING是很重要的線程狀態(tài)彭沼,但是經(jīng)常對我們造成困擾廉侧。如果需要分析線程dump必須要對其有一定的理解肖方。使用生活的例子,本文將每個狀態(tài)變成了簡單的例子非洲。

與正式的Java文檔定義相比鸭限,任何讓人費解的概念都可以用簡單的例子來理解。如果用真實生活中的例子两踏,就更好理解了败京。我想分享一些真實生活的例子來幫助理解這些線程狀態(tài)。

image.png

圖: 采用http://fastthread.io/生成的狀態(tài)圖展示了哪些線程被哪些線程阻塞

BLOCKED

Java文檔官方定義BLOCKED狀態(tài)是:“這種狀態(tài)是指一個阻塞線程在等待monitor鎖梦染∩穆螅”

真實生活例子:今天你要去面試朴皆。這是你夢想的工作,你已經(jīng)盯著它多年了泛粹。你早上起來遂铡,準備好,穿上你最好的外衣晶姊,對著鏡子打理好扒接。當你走進車庫發(fā)現(xiàn)你的老婆已經(jīng)把車開走了。在這個場景们衙,你只有一輛車钾怔,所以怎么辦?在真實生活中蒙挑,可能會打架:-)蒂教。 現(xiàn)在因為你老爸把車開走了你被BLOCKED了。你不能去參加面試脆荷。

這就是BLOCKED狀態(tài)。用技術(shù)術(shù)語講懊悯,你是線程T1蜓谋,你老婆是線程T2而鎖是車。T1BLOCKED在鎖(例子里的車)上炭分,因為T2已經(jīng)獲取了這個鎖桃焕。

小貼士:當線程調(diào)用Object#wait()方法進入一個synchronized塊/方法或重進入一個synchronized鎖/方法時會等待獲取monitor鎖。

WAITING

Java文檔官方定義WAITING狀態(tài)是:“一個線程在等待另一個線程執(zhí)行一個動作時在這個狀態(tài)”

真實生活例子:再看下幾分鐘后你的老婆開車回家了∨趺現(xiàn)在你意識到快到面試時間了观堂,而開車過去很遠。所以你拼命地踩油門呀忧。限速120KM/H而你以160KM/H的速度在開师痕。很不幸,一個交警發(fā)現(xiàn)你超速了而账,讓你停到路邊∫确兀現(xiàn)在你進入了WAITING狀態(tài)。你聽下車坐在那等著交警過來檢查你并放行泞辐”屎幔基本上,只有等他讓你走咐吼,你被卡在WAITING狀態(tài)了吹缔。

用技術(shù)術(shù)語來講永脓,你是線程T1而交警是線程T2块请。你釋放你的鎖(例子中你停下了車)插掂,并進入WAITING狀態(tài),直到警察(例子中T2)讓你走界拦,你陷入了WAITING狀態(tài)。

小貼士:當線程調(diào)用以下方法時會進入WAITING狀態(tài):

  1. Object#wait() 而且不加超時參數(shù)

  2. Thread#join() 而且不加超時參數(shù)

  3. LockSupport#park()

在對象上的線程調(diào)用了Object.wait()會進入WAITING狀態(tài)魄健,直到另一個線程在這個對象上調(diào)用了Object.notify()或Object.notifyAll()方法才能恢復妄荔。一個調(diào)用了Thread.join()的線程會進入WAITING狀態(tài)直到一個特定的線程來結(jié)束。

TIMED_WAITING

Java文檔官方定義TIMED_WAITING狀態(tài)為:“一個線程在一個特定的等待時間內(nèi)等待另一個線程完成一個動作會在這個狀態(tài)”

真實生活例子:盡管充滿戲劇性迄薄,你在面試中做的非常好琅关,驚艷了所有人并獲得了高薪工作。(祝賀你<ケ巍)你回家告訴你的鄰居你的新工作并表達你激動的心情涣易。你的朋友告訴你他也在同一個辦公樓里工作。他建議你坐他的車去上班冶伞。你想這不錯新症。所以第一天,你走到他的房子响禽。在他的房子前停好你的車徒爹。你等了10分鐘,但你的鄰居沒有出現(xiàn)芋类。你繼續(xù)開自己的車去上班隆嗅,這樣你不會在第一天就遲到。這就是TIMED_WAITING.

用技術(shù)術(shù)語來解釋侯繁,你是線程T1而你的鄰居是線程T2胖喳。你釋放了鎖(這里是停止開車)并等了足足10分鐘。如果你的鄰居T2沒有來贮竟,你繼續(xù)開車丽焊。

小貼士:調(diào)用了以下方法的線程會進入TIMED_WAITING

  1. Thread#sleep()

  2. Object#wait() 并加了超時參數(shù)

  3. Thread#join() 并加了超時參數(shù)

  4. LockSupport#parkNanos()

  5. LockSupport#parkUntil()

結(jié)論

當人們分析thread dump時,理解這些不同的線程狀態(tài)很關(guān)鍵咕别。
有多少線程在RUNNABLE,BLOCKED,WAITING和TIMED_WAITING狀態(tài)技健?哪一個線程被阻塞了?誰在阻塞別人惰拱?哪一個對象被鎖了凫乖?這些都是很重要的度量分析線程狀態(tài)的東西。這些線程分析的細節(jié)都可以很容易地用線上分析工具http://fastthread.io/完成弓颈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帽芽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子翔冀,更是在濱河造成了極大的恐慌导街,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纤子,死亡現(xiàn)場離奇詭異搬瑰,居然都是意外死亡款票,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門泽论,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艾少,“玉大人,你說我怎么就攤上這事翼悴「抗唬” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵鹦赎,是天一觀的道長谍椅。 經(jīng)常有香客問我,道長古话,這世上最難降的妖魔是什么雏吭? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮陪踩,結(jié)果婚禮上杖们,老公的妹妹穿的比我還像新娘。我一直安慰自己肩狂,他們只是感情好胀莹,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著婚温,像睡著了一般。 火紅的嫁衣襯著肌膚如雪媳否。 梳的紋絲不亂的頭發(fā)上栅螟,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音篱竭,去河邊找鬼力图。 笑死,一個胖子當著我的面吹牛掺逼,可吹牛的內(nèi)容都是我干的吃媒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼吕喘,長吁一口氣:“原來是場噩夢啊……” “哼赘那!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起氯质,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤募舟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后闻察,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拱礁,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡琢锋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了呢灶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吴超。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鸯乃,靈堂內(nèi)的尸體忽然破棺而出鲸阻,到底是詐尸還是另有隱情,我是刑警寧澤飒责,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布赘娄,位于F島的核電站,受9級特大地震影響宏蛉,放射性物質(zhì)發(fā)生泄漏遣臼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一拾并、第九天 我趴在偏房一處隱蔽的房頂上張望揍堰。 院中可真熱鬧,春花似錦嗅义、人聲如沸屏歹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝙眶。三九已至,卻和暖如春褪那,著一層夾襖步出監(jiān)牢的瞬間幽纷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工博敬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留友浸,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓偏窝,卻偏偏與公主長得像收恢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子祭往,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

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