JAVA 線程生命周期

Java 線程生命周期是什么呢?在不同階段又有什么含義呢?

線程從創(chuàng)建到運行完成要經(jīng)歷下面這些階段:

  • New
  • Runnable
  • Running
  • Non-Runnable (blocked)
  • Terminated

New: 已經(jīng)創(chuàng)建了該線程類的實例,但是還沒有調(diào)用 start() 方法。

Runnable: 線程已經(jīng)調(diào)用了 start() 方法,已經(jīng)可以運行了,正在等待線程調(diào)度器(Java 采用操作系統(tǒng)的線程調(diào)度器)來運行。

Running: 線程已經(jīng)被線程調(diào)度器選中并正在運行中。

Non-Runnable (blocked): 線程還存在但是沒有資格運行??赡艿脑蛴校簊leep 操作、等待文件 I/O 的完成或等待釋放鎖狀態(tài)等等。

Terminated: 線程已經(jīng)運行結(jié)束,處于中止?fàn)顟B(tài), run() 方法已經(jīng)退出。

下面這幅圖表述的是各個階段的轉(zhuǎn)換過程:


Java 線程狀態(tài)流轉(zhuǎn).png

閱讀英文原文

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

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