Java線程的狀態(tài)

Java中線程的狀態(tài)一共有6種:


image.png

圖片來源于網(wǎng)絡(luò)

  • 新建(New):新建一個線程對象囱嫩,但沒有調(diào)用start()方法嫂侍;從New狀態(tài)出發(fā)后儿捧,線程就不會回到New狀態(tài)
  • 運行(Runnable):Java中將正在運行(Running)和就緒(Ready)統(tǒng)稱為運行(Runnable)。線程創(chuàng)建后挑宠,其他線程若調(diào)用了該線程的start()方法菲盾,則該線程進入就緒(Ready)狀態(tài),等待獲取CPU的時間片痹栖。而該線程獲得CPU時間片后則轉(zhuǎn)變?yōu)檎谶\行(Running)亿汞。
    就緒(Ready)狀態(tài):當(dāng)沒有分配CPU時間片時瞭空,線程永遠處于就緒(Ready)狀態(tài)揪阿;當(dāng)調(diào)用了start()方法時疗我,線程就進入就緒(Ready)狀態(tài);當(dāng)線程的sleep()方法結(jié)束南捂,或其他線程join()結(jié)束吴裤,等待用戶輸入完畢又或者某個線程拿到對象鎖后,這些線程也會進入就緒狀態(tài);當(dāng)前線程的時間片使用完后溺健,調(diào)用當(dāng)前線程的yield()方法麦牺,當(dāng)前線程也會進入就緒狀態(tài),當(dāng)阻塞狀態(tài)中等待鎖的線程拿到鎖后鞭缭,進入就緒狀態(tài)剖膳。
    運行(Running)狀態(tài):CPU從線程池中選擇一個線程,從而使得該線程處于運行(Running)狀態(tài)岭辣。這也是線程進入運行(Running)狀態(tài)的唯一方式吱晒。
  • 阻塞(BLOCKED):線程在運行過程中,會由于各種原因進入阻塞狀態(tài):
  1. 線程通過調(diào)用sleep方法進入睡眠狀態(tài)沦童;
  2. 線程調(diào)用一個在I/O上被阻塞的操作仑濒,即該操作在輸入輸出操作完成之前不會返回到它的調(diào)用者;
  3. 線程試圖得到一個鎖(synchronized等)偷遗,而該鎖正被其他線程持有墩瞳;
  4. 線程在等待某個觸發(fā)條件;
    ......
    阻塞狀態(tài)指正在運行的線程沒有運行結(jié)束氏豌,暫時讓出了CPU時間片喉酌,此時其處于就緒(Ready)狀態(tài)的線程就可以獲取CPU時間片,進入運行狀態(tài)泵喘。
  • 等待(Waiting):表示線程等待(或者說掛起)瞭吃,讓出CPU資源給其他線程使用
    Waiting的線程一般在等待一些特殊的事件,比如通過wait()方法等待的線程在等待notify()方法涣旨,而通過join()方法等待的線程則會等待目標(biāo)線程的終止歪架。一旦等到了期望事件,線程就會再次執(zhí)行霹陡。
  • 超時等待(Timed_Wating):處于這種狀態(tài)的線程不會被分配CPU執(zhí)行時間和蚪,不過無須無限期等待被其他線程顯示地喚醒,在達到一定時間后它們會自動喚醒烹棉。
  • 終止(TERMINATED):表示線程已執(zhí)行完畢攒霹。當(dāng)線程的run()方法執(zhí)行完畢,或者主程序的main()函數(shù)完成時浆洗,我們就認為它終止了催束。這個線程對象也許是活的,但是伏社,它已經(jīng)不是一個單獨執(zhí)行的線程抠刺。線程一旦終止了塔淤,就不能復(fù)生也就是無法再次回到Runnable狀態(tài)。舉個例子速妖,你在淘寶下了一個訂單高蜂,訂單號相當(dāng)于線程編號,假如你把這個訂單取消了罕容,則這個訂單無法恢復(fù)备恤,就算重新下單同樣的商品訂單號也會不一樣(不是同一個線程)。在一個終止的線程上調(diào)用start()方法锦秒,會拋出java.lang.IllegalThreadStateException異常露泊。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市旅择,隨后出現(xiàn)的幾起案子滤淳,更是在濱河造成了極大的恐慌,老刑警劉巖砌左,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脖咐,死亡現(xiàn)場離奇詭異,居然都是意外死亡汇歹,警方通過查閱死者的電腦和手機屁擅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來产弹,“玉大人派歌,你說我怎么就攤上這事√瞪冢” “怎么了胶果?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斤斧。 經(jīng)常有香客問我早抠,道長辜梳,這世上最難降的妖魔是什么昵济? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮祝闻,結(jié)果婚禮上游昼,老公的妹妹穿的比我還像新娘甘苍。我一直安慰自己,他們只是感情好烘豌,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布载庭。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪囚聚。 梳的紋絲不亂的頭發(fā)上靖榕,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音靡挥,去河邊找鬼序矩。 笑死鸯绿,一個胖子當(dāng)著我的面吹牛跋破,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓶蝴,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼毒返,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舷手?” 一聲冷哼從身側(cè)響起拧簸,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎男窟,沒想到半個月后盆赤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡歉眷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年牺六,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汗捡。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡淑际,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扇住,到底是詐尸還是另有隱情春缕,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布艘蹋,位于F島的核電站锄贼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏女阀。R本人自食惡果不足惜咱娶,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望强品。 院中可真熱鬧膘侮,春花似錦、人聲如沸的榛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雕薪,卻和暖如春昧诱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背所袁。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工盏档, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人燥爷。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓蜈亩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親前翎。 傳聞我的和親對象是個殘疾皇子稚配,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 線程的生命周期 Java語言中定義了5種線程狀態(tài),在任意一個時間點港华,一個線程只能有且只有其中一種狀態(tài)道川,這5種狀態(tài)是...
    FX_SKY閱讀 7,115評論 4 2
  • 線程的狀態(tài)切換 線程在它的生命周期中會處于各種不同的狀態(tài) 1.新建態(tài)(New) 用new語句創(chuàng)建的線程對象處于新建...
    程序o07閱讀 253評論 0 0
  • Java線程的狀態(tài) 線程的狀態(tài)摘錄 1.新建(NEW):新創(chuàng)建了一個線程對象。 2.可運行(RUNNABLE):線...
    小七_8d72閱讀 216評論 0 0
  • 0 前言 當(dāng)線程被創(chuàng)建并啟動以后立宜,它既不是一啟動就進入了執(zhí)行狀態(tài)冒萄,也不是一直處于執(zhí)行狀態(tài)。在線程的生命周期中橙数,它要...
    七寸知架構(gòu)閱讀 5,199評論 2 63
  • 下面將會針這張圖對線程的狀態(tài)轉(zhuǎn)換來做解釋 在操作系統(tǒng)的課程中把線程大致分為了3個狀態(tài)1.就緒狀態(tài)(線程對資源上鎖尊流,...
    jchen104閱讀 880評論 0 0