1. 程式人生 > >Java中執行緒的生命週期

Java中執行緒的生命週期

1、執行緒的生命週期:新建(New)、就緒(Runnable)、執行(Running)、阻塞(Blocked)和死亡(Dead)5種狀態。 2、當執行緒物件呼叫了start()方法之後,該執行緒處於就緒狀態,Java虛擬機器會為其建立方法呼叫棧和程式計數器,處於這個狀態中的執行緒並沒有開始執行,只是表示該執行緒可以運行了。至於該執行緒何時開始執行,取決於JVM裡執行緒排程器的排程。 3、啟動執行緒使用start()方法,而不是run()方法。 4、只能對處於新建狀態的執行緒呼叫start(),否則將引發IllegalThreadStateException異常。 5、所有現代的桌面和伺服器作業系統都採用搶佔式排程策略,只有當一個執行緒呼叫了它的sleep()方法或yield()方法後才會放棄所佔用的資源。 6、執行緒從阻塞狀態只能進入就緒狀態,無法進入執行狀態。 7、程式會以如下三種方式結束,結束後就處於死亡狀態。 (1)run()或call()方法執行完成,執行緒正常結束。 (2)執行緒丟擲一個未捕獲的Exception或Error。 (3)直接呼叫該執行緒的stop()方法來結束該執行緒——該方法容易導致死鎖,通常不推薦使用。 8、isAlive()方法測試某個執行緒是否已經死亡。