執行緒的宣告週期和狀態

2022-06-21 02:54:12 字數 616 閱讀 7235

新建 (new )    :新建立乙個執行緒

就緒(runnable) :執行緒物件建立後,其他執行緒呼叫了該物件的start方法,該狀態的執行緒位於可執行執行緒池中,變得可執行, 等待獲取cpu的使用權

執行(running)  :就緒狀態的執行緒或者cpu 的使用權,執行程式**

阻塞(blocked)  :阻塞狀態是執行緒因為某種原因放棄了cpu 的使用權,暫時停止執行, 知道執行緒進入就緒狀態才有機會轉到執行狀態

死亡(dead):執行緒執行完了或者異常退出了run方法,該執行緒結束宣告週期。

阻塞的狀態又分為三種

1,等待阻塞:執行的執行緒執行了 wait方法,該執行緒會釋放占用的所有資源,jvm會把該執行緒放入「等待池」中。進入這個狀態後是不能自動喚醒的,必須依靠其他執行緒呼叫notify或者notifyall方法才能被喚醒,wait 是object類的方法

2,同步阻塞:執行的執行緒在獲取物件的同步鎖時,若該同步鎖被別的執行緒占用,則jvm會把該執行緒放入到「鎖池」中

3,其他阻塞:執行的執行緒執行sleep或者join方法,或者發出來i/o請求時,jvm會把該執行緒設定為阻塞狀態。當sleep狀態超時、join等待方法終結或者超時、或者i/o處理完畢時,執行緒從新進入就緒狀態,sleep方法是thread類的方法

18 3 執行緒的宣告週期

1 概述 執行緒具有生命週期,其中包含7種狀態,分別為出生狀態 就緒狀態 執行狀態 等待狀態 休眠狀態 阻塞狀態和死亡狀態。出生狀態就是執行緒被建立時處於的狀態,在使用者使用該執行緒例項呼叫start 方法之前都處於出生狀態 當使用者呼叫start 方法後,執行緒處於就緒狀態 又被稱為可執行狀態 當...

執行緒的狀態和生命週期

1 新建狀態 create 建立乙個執行緒類的物件後,產生的新執行緒就進入新建狀態。如 thread myth new mythread 2 可執行狀態 runable 也叫就緒狀態,呼叫start 方法後進入。3 執行狀態 running 當處於就緒狀態的執行緒被呼叫並獲得了cpu等執行必須的資源...

執行緒的生命週期狀態

第一步 新建狀態 使用new關鍵字新建執行緒,此時處於新建狀態 第二步 就緒狀態 當呼叫了該執行緒的start 方法,執行緒啟動,處於就緒狀態,但是不一定執行 第三步 執行狀態 需要考作業系統cup的排程執行,如果作業系統是搶占式排程,當執行緒搶占到了cup的執行許可權,執行緒開始執行 如果是分時排...