首頁  >  文章  >  Java  >  線程的生命週期是什麼

線程的生命週期是什麼

青灯夜游
青灯夜游原創
2018-12-15 17:06:1513548瀏覽

執行緒的生命週期,也就是執行緒狀態有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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn