執行緒從建立、執行到結束總是處於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 正在將表中修改的資料重新整理到磁碟中,同時正在關閉已經用...