在Java中,執行緒有5中不同狀態,分別是:新建(New)、就緒(Runable)、運行(Running)、阻塞(Blocked)和死亡(Dead)。它們之間的轉換圖如下:
上圖有一個例外,呼叫yield()方法可以讓目前處於運作狀態的執行緒轉入就緒狀態。如果要測試某個執行緒是否已經死亡,可以使用isAlive()方法,該方法在執行緒處於就緒、執行、阻塞時放回true,新建和死亡時傳回false。不要試圖對一個已經死亡的執行緒呼叫start()方法而重新啟動,死亡就是死亡和人一樣,不可能再生。還有也不要對一個執行緒呼叫兩次start()方法,這同樣會引發異常。