執行緒的5種狀態

2021-10-21 16:57:05 字數 958 閱讀 2965

參考:

1.新建(new):新建立了乙個執行緒物件。

2.可執行(runnable):執行緒物件建立後,其他執行緒(比如main執行緒)呼叫了該物件的start()方法。該狀態的執行緒位於可執行執行緒池中,等待被執行緒排程選中,獲取cpu 的使用權 。

3.執行(running):可執行狀態(runnable)的執行緒獲得了cpu 時間片(timeslice) ,執行程式**。

4.阻塞(blocked):阻塞狀態是指執行緒因為某種原因放棄了cpu 使用權,也即讓出了cpu timeslice,暫時停止執行。直到執行緒進入可執行(runnable)狀態,才有機會再次獲得cpu timeslice 轉到執行(running)狀態。阻塞的情況分三種: 

5.死亡(dead):執行緒run()、main() 方法執行結束,或者因異常退出了run()方法,則該執行緒結束生命週期。死亡的執行緒不可再次復生。

執行緒:(1)初始狀態(new)---》t.start()->可執行的狀態(runnable)------>系統選中獲取cpu時間片---》執行狀態running----->run(),main()結束為----》死亡狀態(dead).

(2)執行狀態running---》t.sleep()/t2.join()/3等待使用者輸入--->阻塞狀態(blocked)-->t.sleep結束/t2終止/3等待使用者終止-->可執行的狀態(runnable)

(3)執行狀態running----》執行緒呼叫o.wait()時---->等待佇列--->o.notify()/o.notifyall()--->鎖池佇列--》拿到鎖物件--->可執行的狀態(runnable)

(4)執行狀態running----》--->看到物件上synchronized()--->鎖池佇列--》拿到鎖物件--->可執行的狀態(runnable)

執行緒的5種狀態

大體說一下執行緒的5種狀態 新建 就緒 執行 阻塞 死亡。新建狀態 new 執行緒剛剛建立,最初始的狀態。就緒狀態 runnable 執行緒建立完成後,並且執行的時機已經成熟,確定要執行了,但是還沒執行。沒有分配到cpu 執行狀態 running 線 真正正的獲得了cpu,然後執行相應的操作。帶啊跑...

執行緒的5種狀態詳解

執行緒從建立 執行到結束總是處於下面五個狀態之一 新建狀態 new 就緒狀態 可執行runnable 執行狀態 running 阻塞狀態 blocked 及死亡狀態 dead 1.新建 new 新建立了乙個執行緒物件。2.可執行 runnable 執行緒物件建立後,其他執行緒 比如main執行緒 呼...

多執行緒的5種狀態

多執行緒的5種狀態 新建狀態 就緒狀態 執行狀態 阻塞狀態 死亡狀態 1.新建 新建 new thread new thread 12.準備 準備 等待cpu排程,就緒狀態 thread.start 1 3.執行 執行狀態 cpu開始執行run override public void run 12...