1. 程式人生 > >通俗理解執行緒的生命週期

通俗理解執行緒的生命週期

作者:翁鬆秀


一個執行緒從出生到死亡的一生以及生命中的各個階段

這裡寫圖片描述
新建狀態:執行緒嬰兒剛出生到被呼叫start()方法之前屬於新建狀態,雖然在程式中新建了一個執行緒,但此時執行緒還沒有啟動,屬於新生狀態,還不會走路。

就緒狀態:執行緒出生以後在程式中被呼叫start()方法,此時執行緒進入就緒狀態,也就是剛會站,以後是飛還是走路,就看作業系統這個爸爸怎麼說了。

執行狀態:執行緒進入就緒狀態之後,作業系統爸爸對所有的執行緒孩子進行資源的分配,看哪個執行緒孩子比較優秀,優先順序比較高,然後優先進行排程,教它走路教它翱翔,沒錯,就是偏愛。被作業系統爸爸排程並分配資源的執行緒孩子進入執行狀態,run()方法被呼叫就進入執行狀態。

阻塞狀態:如果一個執行緒執行了sleep(睡懶覺)、suspend(掛科)等”不良“方法,就會失去作業系統爸爸的疼愛,失去所佔有的系統資源,然後該執行緒就會進入阻塞狀態,
死亡狀態:一個執行緒進入死亡狀態的方式有兩種,一種是自然死亡,另一種是非自然死亡。自然死亡就是走完了整個人生,run()方法結束後執行緒就進入了死亡狀態。另一種非自然死亡是當其他終止條件發生的時候,比如說程式產生了羞羞的異常之類。