java 執行緒 執行緒的狀態及其狀態的轉換

2021-08-28 08:13:43 字數 751 閱讀 1303

new:新建立執行緒,初始態

runnable: 可執行狀態,當前狀態的執行緒位於「可執行執行緒池」中,變得可執行,只等待獲取cpu的使用權,即當前執行緒獲得了除cpu以外的所有資源。

running: 正在執行。此時執行緒獲得了cpu的使用權,執行程式**

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

阻塞執行緒分為三種:

等待阻塞:當執行緒呼叫了wait()方法之後,執行緒進入阻塞狀態,這種情況下只有其它執行緒呼叫notify()或者notifyall()時才會被喚醒進入就緒態。

同步阻塞:執行的執行緒在獲取物件的同步鎖時,若該同步鎖被別的執行緒占用,則會進入同步阻塞。

其它阻塞:當進行i/o操作時,或者執行執行緒時呼叫了sleep()或join()方法時,執行緒阻塞,只有當i/o操作完成,sleep()時間到、join()等待執行緒終止時執行緒會變成就緒態。

waiting: 等待狀態,執行緒在執行的過程中呼叫wait()方法。

timed_waiting: 計時等待。執行緒呼叫wait(time) 方法時進入計時等待,等時間到了之後執行緒進入就緒態。

terminated: 終止狀態。執行緒執行完了或者因異常退出了run()方法,該執行緒結束生命週期。

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 阻塞狀...