線程的五種狀態(tài)

1.新建狀態(tài)(New):

創(chuàng)建一個新的線程對象。

2.就緒狀態(tài)(Runnable):

線程創(chuàng)建對象后,其他線程調(diào)用start()方法,該線程處于就緒狀態(tài),資源已經(jīng)準(zhǔn)備就緒,等待CPU資源。

3.運(yùn)行狀態(tài)(Running):

處于就緒狀態(tài)的線程獲取到CPU資源后進(jìn)入運(yùn)行狀態(tài)。

4.阻塞狀態(tài)(Blocked):

阻塞狀態(tài)是線程由于某些原因放棄CPU使用,暫時停止運(yùn)行。

(1)等待阻塞:線程調(diào)用start()方法,JVM會把這個線程放入等待池中,該線程需要其他線程調(diào)用notify()或notifyAll()方法才能被喚醒。

(2)同步阻塞:運(yùn)行的線程在獲取對象的同步鎖時,若該同步鎖被其他線程占用,則JVM會把該線程放入鎖池中。

(3)其他阻塞:運(yùn)行的線程執(zhí)行sleep()或join()方法,或者發(fā)出了I/O請求時,JVM會把該線程置為阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉(zhuǎn)入就緒狀態(tài)。

5.終止?fàn)顟B(tài)(Terminated):

線程run()方法運(yùn)行完畢,該線程結(jié)束。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容