溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

淺談線程的幾種可用狀態(tài)

發(fā)布時(shí)間:2020-09-29 08:54:10 來(lái)源:腳本之家 閱讀:160 作者:jingxian 欄目:編程語(yǔ)言
1. 新建( new ):新創(chuàng)建了一個(gè)線程對(duì)象。
2. 可運(yùn)行( runnable ):線程對(duì)象創(chuàng)建后,其他線程(比如 main 線程)調(diào)用了該對(duì)象 的 start ()方法。該狀態(tài)的線程位于可運(yùn)行線程池中,等待被線程調(diào)度選中,獲 取 cpu 的使用權(quán) 。
3. 運(yùn)行( running ):可運(yùn)行狀態(tài)( runnable )的線程獲得了 cpu 時(shí)間片( timeslice ) ,執(zhí)行程序代碼。
4. 阻塞( block ):阻塞狀態(tài)是指線程因?yàn)槟撤N原因放棄了 cpu 使用權(quán),也即讓出了 cpu timeslice ,暫時(shí)停止運(yùn)行。直到線程進(jìn)入可運(yùn)行( runnable )狀態(tài),才有 機(jī)會(huì)再次獲得 cpu timeslice 轉(zhuǎn)到運(yùn)行( running )狀態(tài)。阻塞的情況分三種:
(一). 等待阻塞:運(yùn)行( running )的線程執(zhí)行 o . wait ()方法, JVM 會(huì)把該線程放 入等待隊(duì)列( waitting queue )中。
(二). 同步阻塞:運(yùn)行( running )的線程在獲取對(duì)象的同步鎖時(shí),若該同步鎖 被別的線程占用,則 JVM 會(huì)把該線程放入鎖池( lock pool )中。
(三). 其他阻塞:運(yùn)行( running )的線程執(zhí)行 Thread . sleep ( long ms )或 t . join ()方法,或者發(fā)出了 I / O 請(qǐng)求時(shí), JVM 會(huì)把該線程置為阻塞狀態(tài)。            當(dāng) sleep ()狀態(tài)超時(shí)、 join ()等待線程終止或者超時(shí)、或者 I / O 處理完畢時(shí),線程重新轉(zhuǎn)入可運(yùn)行( runnable )狀態(tài)。
5. 死亡( dead ):線程 run ()、 main () 方法執(zhí)行結(jié)束,或者因異常退出了 run ()方法,則該線程結(jié)束生命周期。死亡的線程不可再次復(fù)生。
淺談線程的幾種可用狀態(tài)

以上這篇淺談線程的幾種可用狀態(tài)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI