在java中,線程一般有5種狀態,建立、就緒、運行、阻塞、死亡java
第一是建立狀態。在生成線程對象,並無調用該對象的start方法,這是線程處於建立狀態。函數
第二是就緒狀態。當調用了線程對象的start方法以後,該線程就進入了就緒狀態,可是此線程調度程序尚未把該線程設置爲當前線程,此時處於就緒狀態線程
第三是運行狀態。線程調度程序將處於就緒狀態的線程設置爲當前線程,此時線程就進入了運行狀態,開始運行run函數當中的代碼。對象
第四是阻塞狀態。線程正在運行的時候,被暫停,一般是爲了等待某個事件的發生以後在繼續運行。sleep和wait等方法均可以致使線程阻塞。事件
第五是阻塞狀態。若是一個線程的run方法執行結束或者異常中斷後,該線程就會死亡。對於已經死亡的線程,沒法再使用start方法令其進入就緒狀態。it