您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關java中線程的生命周期有哪幾個階段,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
線程的生命周期,即線程狀態有5個階段:新建狀態(New)、就緒狀態(Runnable)、運行狀態(Running)、阻塞狀態(Blocked)、死亡狀態(Dead)。
當線程被創建并啟動以后,它不是一啟動就進入執行狀態,也不會一直處于執行狀態,而是會經歷5種狀態。本篇文章就給大家線程的生命周期,讓大家了解線程的5種狀態。
新建狀態(New)
當程序使用new關鍵字創建了一個線程之后,該線程就處于新建狀態。例:
Thread t = new MyThread();
就緒狀態(Runnable)
調用start()方法后,線程就會處于就緒狀態;此時只能說明此線程已經做好了執行的就緒準備,表示可以運行了,但還不是正在運行的線程。
運行狀態(Running)
當線程獲得到JVM中線程調度器的調度時,線程就會處于運行狀態,開始執行run()方法的線程執行體。
阻塞狀態(Blocked)
這是線程仍處于活動狀態但當前沒有資格運行(因為一些原因,暫時放棄對CPU的使用權,停止執行)時的狀態。
線程進入阻塞的三種狀態:
1、等待阻塞:
1)、線程調用wait()方法,使本線程進入到等待狀態;
2)、調用join()方法,使本線程進入到另一種等待狀態:等待線程終止或者超時的狀態。
2、同步阻塞
線程在試圖獲得一個同步監視器失敗(被其它線程所持有)后,就會進入這種阻塞狀態。
3、其他阻塞
調用sleep()方法主動放棄所占用的CPU資源;或者調用一個阻塞式IO方法、發出了I/O請求,進入這種阻塞狀態。
說明:被阻塞的線程會在合適的時候(阻塞解除后)重新進入就緒狀態,重新等待線程調度器再次調度它。
死亡狀態(Dead)
當退出run()方法時,線程就會自然死亡,處于終止或死亡狀態,也就結束了生命周期。
關于java中線程的生命周期有哪幾個階段就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。