Java執行緒狀態

2021-09-02 21:30:48 字數 735 閱讀 7375

從jdk1.5開始,thread類裡加了執行緒狀態的列舉:state。

其共有6項:new,runnable,blocked,waiting,timed_waiting,terminated。

new:執行緒建立到start方法被呼叫前,狀態為new;

runnable:對jvm而言是正在執行,但可能正在等待作業系統的cpu時間片;

blocked:等待monitor lock,即等待進入synchronized同步塊或方法;

waiting:當呼叫了object.wait(),thread.join(),locksupport.park()後,進入等待狀態;wait要等其他執行緒呼叫object.notify或notifyall,join要等指定的執行緒狀態為terminated;

timed_waiting:類似waiting,只是加了超時時間;thread.sleep時,也是進入該狀態;

terminated:執行緒完成了所有的事情,最終的狀態;

乙個執行緒,都會經歷 new,runnable,terminated這3個狀態。

當**中有 synchronized時,有可能會出現blocked狀態。

有呼叫wait,join,park等方法時,會出現waiting狀態或temed_waiting狀態。

Java執行緒 執行緒狀態

執行緒可以建立6狀態 new 新建立 runnable 可執行 blocked 被阻塞 waiting 等待 timed waiting 計時等待 terminated 被終止 1 新建執行緒 2 可執行執行緒 一旦呼叫start 方法,執行緒就處於runnable狀態,但是卻不必保持執行。執行中的...

Java 執行緒狀態

乙個執行緒可以處於以下四種狀態 新建 new 當執行緒被建立時,它只會短暫的處於這種狀態.此時它已經分配了必須的系統資源,並執行了初始化.此刻執行緒已經有資格獲得cpu時間了,之後排程器將把這個執行緒 轉變位可執行狀態或阻塞狀態.就緒 runnable 在這種狀態下,只要排程器把時間片分配給執行緒,...

Java執行緒狀態

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