大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java線程的狀態(tài)

Java線程的狀態(tài)

更新時間:2022-12-07 11:42:46 來源:動力節(jié)點(diǎn) 瀏覽1519次

Java教程中,大家會學(xué)到線程,線程是為執(zhí)行特定任務(wù)而創(chuàng)建的正在執(zhí)行的程序。Java 線程的生命周期從它的誕生開始,到它的死亡結(jié)束。

Thread 類的 start() 方法用于啟動線程的執(zhí)行并使線程進(jìn)入可運(yùn)行狀態(tài),而 Thread 類的 sleep() 和 wait() 方法使線程進(jìn)入不可運(yùn)行狀態(tài)。

在不可運(yùn)行狀態(tài)之后,線程再次進(jìn)入可運(yùn)行狀態(tài)并開始執(zhí)行。線程的run()方法非常重要。執(zhí)行完run()方法后,線程的生命周期就結(jié)束了。

線程的這些階段就是Java中線程的狀態(tài)。

要在程序中使用線程,識別線程狀態(tài)很重要。下圖展示了Java線程生命周期中的線程狀態(tài)。

Java 中的線程狀態(tài)

線程是程序中的執(zhí)行路徑,它會經(jīng)歷線程的以下狀態(tài)。五種狀態(tài)如下:

新的

可運(yùn)行

跑步

阻塞(不可運(yùn)行狀態(tài))

死的

新(新生兒狀態(tài))

當(dāng) Thread 類的一個實例被創(chuàng)建時,一個新線程就誕生了,并且已知處于 New-born 狀態(tài)。也就是說,當(dāng)一個線程誕生時,它進(jìn)入了新的狀態(tài),但它的執(zhí)行階段還沒有在實例上開始。

簡單來說,Thread 對象創(chuàng)建了,但是它不能執(zhí)行任何程序語句,因為它不處于線程的執(zhí)行狀態(tài)。只能在新線程上調(diào)用 start() 方法;否則,將拋出IllegalThreadStateException 。

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

新生線程的第二階段是執(zhí)行階段。當(dāng)在線程的新實例上調(diào)用 start() 方法時,它進(jìn)入可運(yùn)行狀態(tài)。

在可運(yùn)行狀態(tài)下,線程已準(zhǔn)備好執(zhí)行并等待處理器的可用性(CPU 時間)。有很多準(zhǔn)備執(zhí)行的線程,它們都在隊列(line)中等待。

如果所有線程的優(yōu)先級都相同,則CPU按照先到先得的方式為每個線程分配一個時隙執(zhí)行。為線程分配時間的過程稱為時間分片。線程可以從運(yùn)行、等待或新狀態(tài)進(jìn)入可運(yùn)行狀態(tài)。

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

運(yùn)行意味著處理器 (CPU) 已為線程分配時隙以供其執(zhí)行。當(dāng)線程調(diào)度程序從可運(yùn)行狀態(tài)中選擇一個線程執(zhí)行時,它進(jìn)入運(yùn)行狀態(tài)。看上圖。

在運(yùn)行狀態(tài)下,處理器將其時間交給線程執(zhí)行并執(zhí)行其運(yùn)行方法。它是線程執(zhí)行其實際功能的狀態(tài)。線程只能從可運(yùn)行狀態(tài)進(jìn)入運(yùn)行狀態(tài)。

正在運(yùn)行的線程可能會在以下任何一種情況下放棄其控制并進(jìn)入阻塞狀態(tài)。

當(dāng)線程調(diào)用 sleep() 方法休眠指定時間后,該線程在該時間段內(nèi)出隊列。一旦該時間段過去,線程將再次重新進(jìn)入可運(yùn)行狀態(tài)。

當(dāng)線程使用 suspend() 方法掛起一段時間以滿足某些條件時。可以使用 resume() 方法恢復(fù)掛起的線程。

當(dāng)在線程上調(diào)用 wait() 方法等待一段時間。可以使用 notify() 或 notifyAll() 方法再次運(yùn)行處于等待狀態(tài)的線程。

封鎖狀態(tài)

當(dāng)線程掛起、休眠或等待一段時間以滿足某些條件時,線程被認(rèn)為處于阻塞狀態(tài)。

死亡狀態(tài)

當(dāng)線程的 run() 方法完成語句的執(zhí)行時,線程自動死亡或進(jìn)入死狀態(tài)。也就是說,當(dāng)線程從 run() 方法中退出時,線程就被終止或死亡。當(dāng)調(diào)用 stop() 方法時,線程也可能死掉。

在Java中線程的生命周期中,線程以多種方式從一種狀態(tài)移動到另一種狀態(tài)。這是因為在多線程環(huán)境下,當(dāng)多個線程在執(zhí)行時,一次只能有一個線程使用CPU。

所有其他線程都處于其他一些狀態(tài),要么等待打開 CPU,要么等待滿足某些條件。因此,一個線程總是處于這五種狀態(tài)中的任何一種。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 2021国产精品自产拍在线 | 国产欧美一区视频在线观看 | 看一级特黄a大片日本片黑人 | 日日网| 福利在线播放 | 青青青国产在线视频 | 欧美顶级毛片在线播放 | 大学生久久香蕉国产线看观看 | 国产精品亚洲综合一区 | 久热中文字幕在线精品首页 | 韩国一级理黄论片 | 亚洲国产成人私人影院 | 五月天婷亚洲天综合网精品偷 | 亚洲久操| 久草热视频在线 | 一级毛片在线播放免费 | 久热免费在线视频 | 91成人免费福利网站在线 | 色偷偷要色偷偷网站视频在线 | 成人一区视频 | 国产精品男人的天堂 | 久久中文字幕免费 | 国产网红精品 | 中文字幕伦理聚合第一页 | 99爱视频精品免视看 | 成人一级免费视频 | 91午夜精品亚洲一区二区三区 | 不卡欧美| 欧美成人精品一级高清片 | 国产未成女年一区二区 | 97欧美在线看欧美视频免费 | 毛片在线不卡 | 免费一级毛片在级播放 | 亚洲成年网站 | 精品亚洲一区二区三区 | 久热这里只有精品视频6 | 大色综合色综合网站 | 久久精品一区二区三区资源网 | 色婷婷六月 | 香蕉视频在线观看网站 | 精品国产综合区久久久久久 |