1)新建狀態(new):當執行緒物件對建立後,即進入了新建狀態,如:thread t = new mythread();
2)就緒狀態(runnable):當呼叫執行緒物件的start()方法(t.start();),執行緒即進入就緒狀態。處於就緒狀態的執行緒,只是說明此執行緒已經做好了準備,隨時等待cpu排程執行,並不是說執行了t.start()此執行緒立即就會執行;
3)執行狀態(running):當cpu開始排程處於就緒狀態的執行緒時,此時執行緒才得以真正執行,即進入到執行狀態。注:就緒狀態是進入到執行狀態的唯一入口,也就是說,執行緒要想進入執行狀態執行,首先必須處於就緒狀態中;
4)阻塞狀態(blocked):處於執行狀態中的執行緒由於某種原因,暫時放棄對cpu的使用權,停止執行,此時進入阻塞狀態,直到其進入到就緒狀態,才 有機會再次被cpu呼叫以進入到執行狀態。
根據阻塞產生的原因不同,阻塞狀態又可以分為三種:
a.等待阻塞:執行狀態中的執行緒執行wait()方法,使本執行緒進入到等待阻塞狀態;
b.同步阻塞 – 執行緒在獲取synchronized同步鎖失敗(因為鎖被其它執行緒所占用),它會進入同步阻塞狀態;
c.其他阻塞 – 通過呼叫執行緒的sleep()或join()或發出了i/o請求時,執行緒會進入到阻塞狀態。當sleep()狀態超時、join()等待執行緒終止或者超時、或者i/o處理完畢時,執行緒重新轉入就緒狀態。
5)死亡狀態(terminated):執行緒執行完了或者因異常退出了run()方法,該執行緒結束生命週期。
執行緒的五種狀態
1.建立狀態,執行緒剛剛建立還未呼叫start方法。2.就緒狀態,呼叫start方法,還未搶到cpu執行權。3.執行狀態,搶到cpu執行權,執行run方法。4.阻塞狀態,包含sleep和wait 1 sleep使先執行緒處於睡眠狀態,期間讓出cpu使用權,不釋放資源。2 wait是執行緒處於等待狀態...
Java執行緒的五種狀態
new 乙個執行緒被建立但是沒有呼叫start方法 runnable 可執行的執行緒,即執行緒執行了start方法之後,正在執行或者正在等待某個資源 blocked 執行緒等待鎖來進入同步方法或 塊。waiting 乙個執行緒正在等待另乙個執行緒來喚醒,可能是由於呼叫了以下方法 timed wait...
Python 執行緒的五種狀態
執行緒被掛起。例如呼叫sleep 執行緒被掛起,睡眠時間結束後,程式到了就緒狀態。或者join 阻塞執行緒,待子執行緒返回時,主線程再繼續執行 def printthreadname for i in range 5 print 當前執行的執行緒 執行到第次 format threadname th...