執行緒的六種生命週期狀態及轉換

2021-10-11 21:34:21 字數 441 閱讀 2408

執行緒的生命週期狀態:新建(new),執行(runnable),阻塞(blocked),等待(waiting),超時等待(timed_waiting)死亡(terminated);

新建:建立乙個執行緒就是新建狀態;

執行:呼叫start方法後,獲取到cpu時間片的執行緒處於running狀態,沒有獲取到時間片處於ready狀態,這兩種狀態統稱為runnable;

阻塞:呼叫start方法後執行緒沒有獲取cpu時間片或者在阻塞等待獲取鎖物件會進入阻塞狀態;

等待:執行緒呼叫了wait方法進入等待狀態;sleep方法不會釋放鎖資源;

超時等待:呼叫了sleep(long),wait(long)等方法;

死亡:執行緒run方法執行結束進入銷亡狀態;

執行緒生命週期及狀態

示例2 多執行緒執行狀態切換示例 public class demo2 system.out.println 沒呼叫start方法,thread1當前狀態 thread1.getstate tostring thread1.start thread.sleep 2000l 等待thread1執行結束...

執行緒的生命週期狀態

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

java多執行緒 執行緒狀態及生命週期

1.新建狀態 new 新建立了乙個執行緒物件。2.就緒狀態 runnable 執行緒物件建立後,其他執行緒呼叫了該物件的start 方法。該狀態的執行緒位於可執行執行緒池中,變得可執行,等待獲取cpu的使用權。3.執行狀態 running 就緒狀態的執行緒獲取了cpu的使用權,執行程式 4.阻塞狀態...