任何的物體都是有生命周期的,不同的物品生命周期也是不一樣的,就拿java多線程的生命周期來說吧,多線程的生命周期是分為五個階段的,分別是新建狀態(New)、可運行狀態(Runnable)、運行狀態(Running)、阻塞狀態(Blocked)、等待狀態(Waiting)和死亡狀態(Terminated)。下面粵嵌科技就以這些狀態來給大家講解下他們的生命周期。
1. 新建狀態(New)
創建一個線程對象后,該線程對象就處于新建狀態,此時它不能運行,和其它Java對象一樣,僅僅由Java虛擬機為其分配了內存,沒有表現出任何線程的動態特征。
2. 可運行狀態(Runnable)
當線程對象調用了start()方法后,該線程就進入可運行狀態。處于可運行狀態的線程位于可運行池中,此時它只是具備了運行的條件,能否獲得CPU的使用權開始運行,還需要等待系統的調度。
3. 運行狀態(Running)
如果處于可運行狀態的線程獲得了CPU的使用權,開始執行run()方法中的線程執行體,則該線程處于運行狀態。當一個線程啟動后,它不可能一直處于運行狀態(除非它的線程執行體足夠短,瞬間就結束了),系統會為每一個線程分配一小段的時間來處理任務,當線程用完了這段時間,系統就會剝奪該線程占用的CPU資源,讓其它線程獲得執行的機會。需要注意的是,只有處于可運行狀態的線程才可能轉換到運行狀態。
4. 阻塞狀態(Blocked)和等待狀態(Waiting)
如果線程由于某些原因放棄了CPU的的使用權,暫時停止運行,此線程就進入了阻塞或者等待狀態,阻塞或者等待狀態都是由運行狀態轉換而來的。下面列舉出線程進入阻塞狀態或等待狀態的原因。
5. 死亡狀態(Terminated)
線程的run()方法正常執行完畢或者線程拋出一個未捕獲的異常(Exception)、錯誤(Error),線程就進入死亡狀態。一旦進入死亡狀態,線程將不再擁有運行的資格,也不能再轉換到其它的狀態。
以上就是粵嵌科技給大家整理的關于java多線程的生命周期了,如果說你還想了解更多關于java的專業的知識的話可以點擊我們的在線咨詢,我們會有專業的講師來給你解答。粵嵌科技是一家專業的java培訓機構,如果說你想要學習java的話那么粵嵌科技歡迎大家來我們公司的java培訓班進行實地考察,也可以點擊我們文章下面的獲取試聽資格按鈕來獲取我們的java課程免費試聽資格,在試聽中可以更加深入的了解粵嵌科技。