1. 程式人生 > 實用技巧 >java執行緒狀態、新建狀態、執行狀態、阻塞狀態、等待阻塞、同步阻塞、其他阻塞、死亡狀態

java執行緒狀態、新建狀態、執行狀態、阻塞狀態、等待阻塞、同步阻塞、其他阻塞、死亡狀態

https://www.runoob.com/note/34745

在這裡插入圖片描述

執行緒共包括以下 5 種狀態:

  1. 新建狀態(New):
    執行緒物件被建立後,就進入了新建狀態。例如,Thread thread = new Thread()。

  2. 就緒狀態(Runnable):
    也被稱為“可執行狀態”。呼叫執行緒物件start()方法便會進入就緒狀態。處於就緒狀態的執行緒,隨時可能被CPU排程執行。

  3. 執行狀態(Running):
    執行緒獲取CPU許可權進行執行。需要注意的是,執行緒只能從就緒狀態進入到執行狀態。

  4. 阻塞狀態(Blocked): 阻塞狀態是執行緒因為某種原因放棄CPU使用權,暫時停止執行。直到執行緒進入就緒狀態,才有機會轉到執行狀態。

       阻塞的情況分三種:

  • a. 等待阻塞 – 通過呼叫執行緒的wait()方法,讓執行緒等待某工作的完成。
  • b. 同步阻塞 – 執行緒在獲取synchronized同步鎖失敗(因為鎖被其它執行緒所佔用),它會進入同步阻塞狀態。
  • c. 其他阻塞 – 通過呼叫執行緒的sleep()或join()或發出了I/O請求時,執行緒會進入到阻塞狀態。當sleep()狀態超時、join()等待執行緒終止或者超時、或者I/O處理完畢時,執行緒重新轉入就緒狀態。
  1. 死亡狀態(Dead): 執行緒執行完了或者因異常退出了run()方法,該執行緒結束生命週期。