執行緒的生命的週期

2021-08-20 14:22:15 字數 608 閱讀 3990

package thread;

/** 執行緒的生命的週期

* 7種狀態:出生狀態-就緒狀態-執行狀態-等待狀態-休眠狀態-阻塞狀態-死亡狀態

* 出生狀態:執行緒被建立時水的狀態,使用者在使用該執行緒例項呼叫start()方法之前執行緒都處於出生狀態;

* 就緒狀態(可執行狀態):當使用者呼叫了start()方法後執行緒處於就緒狀態;

* 執行狀態:當執行緒得到系統資源後就進入執行狀態;

* 等待狀態:當處於執行狀態下的執行緒呼叫thread類中的wait()時,執行緒就處於等待狀態;

* 進入等待狀態下的執行緒必須thread類的notify()才能被喚醒,而notifyall()方法是將所有處於等待狀態下的執行緒喚醒

* 休眠狀態:當執行緒呼叫thread類中的sleep()時,則會進入休眠狀態;

* 阻塞狀態:如果乙個執行緒在執行狀態下發出輸入/輸出請求,該執行緒將進入阻塞狀態;在其等待輸入/輸出結束時執行緒進入就緒狀態。

* 對於阻塞的執行緒來說,即使系統資源空閒,執行緒依然不能回到執行狀態

* 死亡狀態:當執行緒的run()執行完畢時執行緒進入死亡狀態;

* */

public class thread的生命週期

}

執行緒的生命週期

1.新建 threadd thread new thread runnable 2.就緒 thread.start 將執行緒放入就緒等待佇列中,等待cpu時間片的分配 3.執行 獲取到cpu時間片,一直執行到結束,除非有優先順序更高執行緒進入或者自動放棄cpu資源 4.死亡 正常結束或被其他執行緒殺...

執行緒的生命週期

如上圖 new乙個thread,則執行緒處於新建狀態。呼叫start 則處於就緒狀態,至於什麼時候執行,屬於系統排程的事情了,當run 或者call 執行體執行完成後,處於死亡狀態。執行狀態的執行緒,可能遇到以下情況而被阻塞 sleep 方法 io阻塞 等待同步鎖 等待通知 suspend 呼叫yi...

執行緒的生命週期

執行緒的生命週期主要分為 新建 可執行 執行 阻塞 終止這幾個狀態。下面展現其狀態轉化框架圖。sleep 使比其優先順序低的執行緒執行 不占用cpu yield 只讓給同優先順序的縣城執行,將自己置於可執行執行緒池。物件鎖保持 join 形式 t.join 等待執行緒t結束,執行緒進入可執行狀態。i...