執行緒的生命週期,也就是執行緒狀態有5個階段:新狀態(New)、就緒狀態(Runnable)、運作狀態(Running)、阻塞狀態(Blocked)、死亡狀態(Dead)。
當執行緒被建立並啟動以後,它不是一啟動就進入執行狀態,也不會一直處於執行狀態,而是會經歷5種狀態。這篇文章就給大家線程的生命週期,讓大家了解線程的5種狀態。 【相關影片教學推薦:Java教學】
新狀態(New)
當程式使用new關鍵字創建了一個執行緒之後,該執行緒就處於新建狀態。範例:
Thread t = new MyThread();
就緒狀態(Runnable)
呼叫start()方法後,執行緒就緒狀態(Runnable)
呼叫start()方法後,執行緒就緒會處於就緒狀態;此時只能說明此執行緒已經做好了執行的就緒準備,表示可以運行了,但還不是正在執行的執行緒。
運行狀態(Running)
當執行緒獲得到JVM中執行緒調度器的調度時,執行緒就會處於運行狀態,開始執行run()方法的執行緒執行體。
阻塞狀態(Blocked)
這是執行緒仍處於活動狀態但目前沒有資格運行(因為一些原因,暫時放棄對CPU的使用權,停止執行)時的狀態。
執行緒進入阻塞的三種狀態:
1、等待阻塞:
1)、執行緒呼叫wait()方法,使本執行緒進入等待狀態;
2)、呼叫join()方法,使本執行緒進入到另一種等待狀態:等待執行緒終止或逾時的狀態。
2、同步阻塞
執行緒在試圖取得一個同步監視器失敗(被其它執行緒所持有)後,就會進入這種阻塞狀態。
3、其他阻塞
呼叫sleep()方法主動放棄所佔用的CPU資源;或呼叫一個阻塞式IO方法、發出了I/O請求,進入這種阻塞狀態。 說明:被阻塞的執行緒會在適當的時候(阻塞解除後)重新進入就緒狀態,重新等待執行緒調度器再次調度它。
死亡狀態(Dead)
當退出run()方法時,執行緒就會自然死亡,處於終止或死亡狀態,也就結束了生命週期。
######總結:###以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。 ###以上是線程的生命週期是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!