溫馨提示×

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

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

java中線程的生命周期有哪幾個(gè)階段

發(fā)布時(shí)間:2020-10-26 11:09:17 來(lái)源:億速云 閱讀:392 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)java中線程的生命周期有哪幾個(gè)階段,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

線程的生命周期,即線程狀態(tài)有5個(gè)階段:新建狀態(tài)(New)、就緒狀態(tài)(Runnable)、運(yùn)行狀態(tài)(Running)、阻塞狀態(tài)(Blocked)、死亡狀態(tài)(Dead)。

java中線程的生命周期有哪幾個(gè)階段

當(dāng)線程被創(chuàng)建并啟動(dòng)以后,它不是一啟動(dòng)就進(jìn)入執(zhí)行狀態(tài),也不會(huì)一直處于執(zhí)行狀態(tài),而是會(huì)經(jīng)歷5種狀態(tài)。本篇文章就給大家線程的生命周期,讓大家了解線程的5種狀態(tài)。

新建狀態(tài)(New)

當(dāng)程序使用new關(guān)鍵字創(chuàng)建了一個(gè)線程之后,該線程就處于新建狀態(tài)。例:

Thread t = new MyThread();

java中線程的生命周期有哪幾個(gè)階段

就緒狀態(tài)(Runnable)

調(diào)用start()方法后,線程就會(huì)處于就緒狀態(tài);此時(shí)只能說(shuō)明此線程已經(jīng)做好了執(zhí)行的就緒準(zhǔn)備,表示可以運(yùn)行了,但還不是正在運(yùn)行的線程。

運(yùn)行狀態(tài)(Running)

當(dāng)線程獲得到JVM中線程調(diào)度器的調(diào)度時(shí),線程就會(huì)處于運(yùn)行狀態(tài),開(kāi)始執(zhí)行run()方法的線程執(zhí)行體。

阻塞狀態(tài)(Blocked)

這是線程仍處于活動(dòng)狀態(tài)但當(dāng)前沒(méi)有資格運(yùn)行(因?yàn)橐恍┰?,暫時(shí)放棄對(duì)CPU的使用權(quán),停止執(zhí)行)時(shí)的狀態(tài)。

線程進(jìn)入阻塞的三種狀態(tài):

1、等待阻塞:

1)、線程調(diào)用wait()方法,使本線程進(jìn)入到等待狀態(tài);

2)、調(diào)用join()方法,使本線程進(jìn)入到另一種等待狀態(tài):等待線程終止或者超時(shí)的狀態(tài)。

2、同步阻塞

線程在試圖獲得一個(gè)同步監(jiān)視器失?。ū黄渌€程所持有)后,就會(huì)進(jìn)入這種阻塞狀態(tài)。

3、其他阻塞

調(diào)用sleep()方法主動(dòng)放棄所占用的CPU資源;或者調(diào)用一個(gè)阻塞式IO方法、發(fā)出了I/O請(qǐng)求,進(jìn)入這種阻塞狀態(tài)。

說(shuō)明:被阻塞的線程會(huì)在合適的時(shí)候(阻塞解除后)重新進(jìn)入就緒狀態(tài),重新等待線程調(diào)度器再次調(diào)度它。

死亡狀態(tài)(Dead)

當(dāng)退出run()方法時(shí),線程就會(huì)自然死亡,處于終止或死亡狀態(tài),也就結(jié)束了生命周期。

關(guān)于java中線程的生命周期有哪幾個(gè)階段就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向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