Java線程狀態(tài)

Java線程狀態(tài)

Java線程有六個狀態(tài),可以在Thread類中的枚舉類型State中查看。

1. NEW

當(dāng)Thread剛創(chuàng)建,并且還未調(diào)用start()方法,此時的狀態(tài)就是NEW。

2. RUNNABLE

一個RUNNABLE狀態(tài)的線程已經(jīng)運(yùn)行在JVM中,但是它可能需要等待某些操作系統(tǒng)的資源,例如CPU。

3. BLOCKED

一個BLOCKED狀態(tài)的線程正在等待獲取一個鎖,例如線程A進(jìn)入了synchronized方法,若線程B也希望進(jìn)入synchronized方法,此時線程B等待獲取鎖,進(jìn)入BLOCKED狀態(tài)。

4. WAITING

由于調(diào)用了下列沒有timeout參數(shù)的方法,線程將會進(jìn)入WAITING狀態(tài)。也就是說,WAITING狀態(tài)的線程等待另一個線程完成一個特殊的行為。
- Object.wait
- Thread.join
- LockSupport.park

5. TIME_WAITING

TIME_WAITING狀態(tài)的線程會等待一段特定的時間。當(dāng)調(diào)用下列帶timeout參數(shù)的方法時會進(jìn)入TIME_WAITING狀態(tài)。
- Thread.sleep
- Object.wait
- Thread.join
- LockSupport.parkNanos
- LockSupport.parkUntil

6. TERMINATED

當(dāng)線程完成任務(wù)后進(jìn)入TERMINATED狀態(tài)。

詳細(xì)分析可以看這篇博客Java線程狀態(tài)分析

最后編輯于
?著作權(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)容

  • 更多 Java 并發(fā)編程方面的文章,請參見文集《Java 并發(fā)編程》 關(guān)于 Monitor Monitor 是 J...
    專職跑龍?zhí)?/span>閱讀 2,117評論 0 5
  • 很多人對于線程的狀態(tài)不是太了解,本次我想把我理解的有關(guān)線程的相關(guān)知識和大家分享一下,上面的圖片是我從網(wǎng)上找到的,這...
    indexImprov閱讀 8,194評論 0 11
  • 一、進(jìn)程和線程 進(jìn)程 進(jìn)程就是一個執(zhí)行中的程序?qū)嵗?,每個進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間,一個進(jìn)程中可以有多個線程。...
    阿敏其人閱讀 2,698評論 0 13
  • 時針轉(zhuǎn)了兩圈 苦等的故事也剩不了幾天 繼續(xù)的 是流浪還是平淡 是琴簫還是油煙 寫在我已定的因果里 如果,喚醒是另一...
    t小希閱讀 259評論 0 1
  • 眼皮在跳。感覺整個人都是在發(fā)抖,不知道眼皮怎么會跳,但這樣的感覺真的很不好。那跳動的頻率,就像是心臟在跳動...
    鹿鹿無畏閱讀 926評論 0 50

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