大战熟女丰满人妻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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

封鎖狀態(tài)

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

死亡狀態(tài)

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

在Java中線程的生命周期中,線程以多種方式從一種狀態(tài)移動到另一種狀態(tài)。這是因?yàn)樵?a href="/hot/1621.html" target="_blank" title="什么是多線程">多線程環(huán)境下,當(dāng)多個(gè)線程在執(zhí)行時(shí),一次只能有一個(gè)線程使用CPU。

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

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

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 福利视频在线播放 | 91网红福利精品区一区二 | 久久香蕉影院 | 成人久久影院 | 男人资源在线 | 亚洲国产成+人+综合 | 在线日本妇人成熟免费观看 | 日本欧美久久久久免费播放网 | 精品国产成人高清在线 | 欧美一级视 | 久久精品爱国产免费久久 | 亚洲国产成a人v在线 | 久热精品视频在线播放 | 日本高清在线精品一区二区三区 | 四虎永久免费884hutv | 99亚洲精品 | 精品久久久久久久久久中文字幕 | 羞羞视频在线观看 | 亚洲欧美日韩中文字幕在线一区 | 国产一级特黄全黄毛片 | 在线观看中文字幕 | 97国产在线播放 | 曰曰啪天天拍视频在线 | 毛片一级| 一级国产20岁美女毛片 | 韩国色三级伦不卡高清在线观看 | 亚洲狠狠 | 亚州一级毛片在线 | 久九九久福利精品视频视频 | 日韩精品一区二区三区四区 | 国产成人青青热久免费精品 | 天天干天天爽天天操 | 国产毛片一级国语版 | 真人特级毛片免费视频 | 视频一区在线播放 | 国产高清区 | 亚洲国产成人久久一区www妖精 | 久草久| 天天操天天操天天操香蕉 | 女性一级全黄生活片 | 国产激情一区二区三区四区 |