2 State of Thread(線程狀態(tài))

2.1 線程狀態(tài)簡(jiǎn)介

在java.lang.Thread.State中能清楚的看到Java中定義了6種狀態(tài):

public enum State {
    /**
     * Thread state for a thread which has not yet started.
     */
    NEW,

    /**
     * Thread state for a runnable thread.  A thread in the runnable
     * state is executing in the Java virtual machine but it may
     * be waiting for other resources from the operating system
     * such as processor.
     */
    RUNNABLE,
  1. New:尚未啟動(dòng)的線程的線程狀態(tài)
  2. Runnable:可運(yùn)行的線程狀態(tài),等待CPU調(diào)度
  3. BLOCKED:線程阻塞等待獲取監(jiān)視器鎖的線程狀態(tài)(處于synchronized同步代碼塊或方法中被阻塞)
  4. WAITING:等待線程的線程狀態(tài)(不帶超時(shí)的方式:Object.wait、Thread.join、LockSupport.park)
  5. TIMED_WAITING:具有指定等待時(shí)間的等待線程的線程狀態(tài)。(帶超時(shí)方式:Thread.sleep、Object.wait、Thread.join、LockSupport.parkNanos、LockSupport.parkUntil)
  6. TERMINATED:終止線程的線程狀態(tài)。線程正常完成執(zhí)行或出現(xiàn)異常(接收到中斷指令)

2.2 線程狀態(tài)間的切換

線程間的狀態(tài)切換

2.2.1 新建-運(yùn)行-終止(示例)


運(yùn)行結(jié)果

2.2.2 新建->運(yùn)行->等待->運(yùn)行->終止(示例)


運(yùn)行結(jié)果

2.2.3 新建->運(yùn)行->阻塞->運(yùn)行->終止(示例)


運(yùn)行結(jié)果

這里主線程等待200ms的時(shí)候,主線程拿到ThreadStateSwitch的對(duì)象鎖是沒有被釋放的,在blockThreadState的方法中的同步塊運(yùn)行完之后,thread3才能拿到對(duì)象鎖。

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

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

  • Java多線程學(xué)習(xí) [-] 一擴(kuò)展javalangThread類 二實(shí)現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 3,115評(píng)論 1 18
  • 本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應(yīng)的一些線程函數(shù)用法、概述等。 首先講...
    李欣陽(yáng)閱讀 2,602評(píng)論 1 15
  • 林炳文Evankaka原創(chuàng)作品。轉(zhuǎn)載自http://blog.csdn.net/evankaka 本文主要講了ja...
    ccq_inori閱讀 741評(píng)論 0 4
  • 【JAVA 線程】 線程 進(jìn)程:是一個(gè)正在執(zhí)行中的程序。每一個(gè)進(jìn)程執(zhí)行都有一個(gè)執(zhí)行順序。該順序是一個(gè)執(zhí)行路徑,或者...
    Rtia閱讀 2,895評(píng)論 2 20
  • 一、進(jìn)程和線程 進(jìn)程 進(jìn)程就是一個(gè)執(zhí)行中的程序?qū)嵗?,每個(gè)進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間,一個(gè)進(jìn)程中可以有多個(gè)線程。...
    阿敏其人閱讀 2,714評(píng)論 0 13

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