執行緒從建立到執行再到死亡的整個過程。
新建:執行緒物件建立
就緒:通過執行緒的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...