執行緒的執行狀態

2021-08-30 14:05:15 字數 719 閱讀 3274

執行緒從建立、執行到結束總是處於5種狀態之一:分別是新建狀態,就緒狀態,執行狀態,阻塞狀態,死亡狀態。這5種狀態之間的轉換流程如圖

新建狀態:當成功建立乙個執行緒,但是還未呼叫start方法之前的狀態,例如:

thread thread = new thread(new runnable()  catch (interruptedexception e) 

system.out.println("a執行緒:"+i);}}

},"a");

程式還未呼叫thread.start()方法,此時執行緒a的狀態就是新建狀態。

就緒狀態:當執行緒呼叫start()方法啟動執行緒後,並不會立即執行其執行緒的run()方法中的內容,它必須先同其他執行緒競爭cpu的執行權,只有獲得cpu的執行權後才可以執行run()中的方法,爭奪cpu執行權的這段狀態就是就緒狀態。

執行狀態:執行緒獲得cpu執行權,執行run()方法的狀態。

阻塞狀態:執行緒在執行過程中,可能因為各種原因進入阻塞狀態:

執行緒呼叫sleep方法進入睡眠狀態

執行緒呼叫i/o上被阻塞,該操作在輸入輸出完成之前沒有返回到它的呼叫者

執行緒試圖獲得乙個鎖,但是該鎖正被其他執行緒持有

執行緒在等待某個觸發條件

死亡狀態:

執行緒的執行狀態

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

執行緒的幾種可執行狀態

1.新建 new 新建立了乙個執行緒物件。2.可執行 runnable 執行緒被建立後,其他 執行緒 比如main執行緒 呼叫了該物件的的start 方法,該狀態的執行緒處於可執行的執行緒池中,等待被執行緒排程使用,獲取cpu的使用權 3.執行 running 可執行執行緒獲得了cpu時間片,執行程...

mysql 執行狀態

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