天天看點

線程的五種狀态

在Java當中,線程通常都有五種狀态,建立、就緒、運作、阻塞和死亡。

第一是建立狀态。在生成線程對象,并沒有調用該對象的start方法,這是線程處于建立狀态。   第二是就緒狀态。當調用了線程對象的start方法之後,該線程就進入了就緒狀态,但是此時線程排程程式還沒有把該線程設定為目前線程,此時處于就緒狀态。線上程運作之後,從等待或者睡眠中回來之後,也會處于就緒狀态。   第三是運作狀态。線程排程程式将處于就緒狀态的線程設定為目前線程,此時線程就進入了運作狀态,開始運作run函數當中的代碼。   第四是阻塞狀态。線程正在運作的時候,被暫停,通常是為了等待某個時間的發生(比如說某項資源就緒)之後再繼續運作。sleep,suspend,wait等方法都可以導緻線程阻塞。   第五是死亡狀态。如果一個線程的run方法執行結束或者調用stop方法後,該線程就會死亡。對于已經死亡的線程,無法再使用start方法令其進入就緒。

ps:順便補充下

run()方法用來執行線程體中具體的内容

start()方法用來啟動線程對象,使其進入就緒狀态

sleep()方法用來使線程進入睡眠狀态

繼續閱讀