執行緒的幾種可執行狀態

2021-09-19 23:22:34 字數 656 閱讀 4481

1.新建(new):新建立了乙個執行緒物件。

2.可執行(runnable):執行緒被建立後,其他 執行緒(比如main執行緒)呼叫了該物件的的start()方法,該狀態的執行緒處於可執行的執行緒池中,等待被執行緒排程使用,獲取cpu的使用權

3.執行(running):可執行執行緒獲得了cpu時間片,執行程式**

4.阻塞(block):阻塞狀態是指執行緒因為某種方法放棄了cpu使用權,也讓出了cpu時間片,暫時停止執行,直到執行緒進入可執行狀態,重新獲得cpu時間片轉到執行狀態,阻塞的情況分三種:

(一). 等待阻塞:執行的執行緒執行 wait ()方法, jvm 會把該執行緒放入等待佇列中。

(二). 同步阻塞:執行的執行緒在獲取物件的同步鎖時,若該同步鎖 被別的執行緒占用,則 jvm 會把該執行緒放入鎖池( lock pool )中。

(三). 其他阻塞: 執行的執行緒執行 thread . sleep 或 t . join ()方法,或者發出了 i / o 請求時, jvm 會把該執行緒置為阻塞狀態。當 sleep ()狀態超時、 join ()等待執行緒終止或者超時、或者 i / o 處理完畢時,執行緒重新轉入可執行( runnable )狀態。

5. 死亡( dead ):執行緒 run ()、 main () 方法執行結束,或者因異常退出了 run ()方法,則該執行緒結束生命週期。死亡的執行緒不可再次復生。

執行緒的執行狀態

執行緒從建立 執行到結束總是處於5種狀態之一 分別是新建狀態,就緒狀態,執行狀態,阻塞狀態,死亡狀態。這5種狀態之間的轉換流程如圖 新建狀態 當成功建立乙個執行緒,但是還未呼叫start方法之前的狀態,例如 thread thread new thread new runnable catch in...

執行緒的執行狀態

1,建立 當建立好執行緒物件的時候,也就是new thread類或者是new thread子類的時候。此時稱為建立狀態 2,就緒 當執行緒物件呼叫了start 方法,開啟執行緒了的時候,此時的執行緒已經開啟了,隨時可能會被cpu執行,因為cpu一此只能執行乙個執行緒,當其他執行緒已經開起了,但還沒有...

mysql 執行狀態

show processlist 或使用mysql administrator 檢視當前執行connection的狀態 state列出的狀態主要有以下幾種 checking table 正在檢查資料表 這是自動的 closing tables 正在將表中修改的資料重新整理到磁碟中,同時正在關閉已經用...