JAVA高階基礎(66) 執行緒的生命週期

2021-09-03 05:13:59 字數 710 閱讀 7864

執行緒從建立到執行再到死亡的整個過程。

新建:執行緒物件建立

就緒:通過執行緒的start方法啟動執行緒,執行緒就處於就緒狀態,等待執行緒排程,獲取cpu的執行權。

執行:執行緒獲得cpu的執行權,處於執行中。

阻塞:執行緒在執行期間,因為某種原因(休眠,禮讓,時間到達),暫時失去cpu 的執行權,等待再次獲得cpu的執行權。

死亡:當run(),main()執行結束之後,或者因為執行緒發生異常,終止執行。執行緒死亡之後不能在復生。

等待阻塞:執行緒執行了wait()方法;

同步阻塞:執行緒在執行同步鎖的時候,鎖物件被其他執行緒占用。等待其他執行緒釋放鎖。

其他阻塞:執行緒執行了sleep()、join()、執行io操作  直到sleep的時間,或者join的執行緒結束和時間 到達。或者io操作結束。 執行緒會再次恢復到就緒狀態。

66 執行緒的生命週期

執行緒的生命週期主要分為下面5個狀態 執行緒生命週期過程圖 以上面圖為例,簡單說一下執行緒的生命週期 1.新建執行緒,建立乙個執行緒的物件。2.執行緒物件建立好之後進入就緒狀態,此時會等待獲取cpu的執行權。3.獲取到cpu執行權之後,執行緒物件開始執行。5.如果執行緒物件在執行過程中遇到了wait...

Java 執行緒生命控制

乙個執行緒的產生是從我們呼叫了start方法開始進入runnable狀態,即可以被排程執行狀態,並沒有真正開始執行,排程器可以將cpu分配給它,真正執行其中的程式 執行緒在執行過程中,有以下幾個可能的去向 沒有任何阻隔,執行完成直接結束,也就是run 方法執行完畢。排程器將cpu分配給其他執行緒,這...

Java執行緒的生命週期

具體的狀態如下所示 以上有如下幾個方法 suspend 暫時掛起執行緒。resume 恢復掛起的執行緒。stop 停止執行緒。因為以上的三個方法都會產生死鎖的問題,所以現在已經不建議使用了。如果現在假設要想停止乙個執行緒的執行如何去做呢?通過設定標誌位,讓執行緒停止執行。class mythread...