色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

線程的生命周期

時間:2022-07-23

分析&回答

線程的生命周期分為創(chuàng)建(new)、就緒(Runnable)、運行(running)、阻塞(Blocked)、死亡(Dead)五種狀態(tài)。線程啟動后不會一直霸占CPU資源,所以CPU需要在多條線程中切換執(zhí)行,線程就會在多次的運行和阻塞中切換。


新建(new)和就緒(Runnable)狀態(tài)

當new一個線程后,該線程處于新建狀態(tài),此時它和Java對象一樣,僅僅由Java虛擬機為其分配內存空間,并初始化成員變量。此時線程對象沒有表現(xiàn)出任何的動態(tài)特征,程序也不會執(zhí)行線程的執(zhí)行體。

注意:run方法是線程的執(zhí)行體,不能由我們手動調用。我們可以用start方法啟動線程,系統(tǒng)會把run方法當成線程的執(zhí)行體來運行,如果直接調用線程對象run方法,則run方法立即會被運行。而且在run方法返回之前其他線程無法并行執(zhí)行,也就是說系統(tǒng)會把當前線程類當成一個普通的Java對象,而run方法也是一個普通的方法,而不是線程的執(zhí)行體。


運行(running)和阻塞(Blocked)狀態(tài)

如果處于就緒狀態(tài)的線程就獲得了CPU,開始執(zhí)行run方法的線程執(zhí)行體,則該線程處于運行狀態(tài)。單CPU的機器,任何時刻只有一條線程處于運行狀態(tài)。當然,在多CPU機器上將會有多線程并行(parallel)執(zhí)行,當線程大于CPU數(shù)量時,依然會在同一個CPU上切換執(zhí)行。

線程運行機制:一個線程運行后,它不可能一直處于運行狀態(tài)(除非它執(zhí)行的時間很短,瞬間執(zhí)行完成),線程在運行過程中需要中斷,目的是讓其他的線程有運行機會,線程的調度取決于底層的策略。對應搶占式的系統(tǒng)而言,系統(tǒng)會給每個可執(zhí)行的線程一個小時間段來處理任務,當時間段到達系統(tǒng)就會剝奪該線程的資源,讓其他的線程有運行的機會。在選擇下一個線程時,系統(tǒng)會考慮線程優(yōu)先級。


以下情況會出現(xiàn)線程阻塞狀態(tài):

A、線程調用sleep方法,主動放棄占用的處理器資源

B、線程調用了阻塞式IO方法,在該方法返回前,該線程被阻塞

C、線程試圖獲得一個同步監(jiān)視器,但該同步監(jiān)視器正被其他線程所持有。

D、線程等待某個通知(notify)

E、程序調用了suspend方法將該線程掛起。不過這個方法容易導致死鎖,盡量不免使用該方法

當線程被阻塞后,其他線程將有機會執(zhí)行。對于網站建設公司來說,被阻塞的線程會在合適的時候重新進入就緒狀態(tài),注意是就緒狀態(tài)不是運行狀態(tài)。也就是被阻塞線程在阻塞解除后,必須重新等待線程調度器再次調用它。


針對上面線程阻塞的情況,發(fā)生以下特定的情況可以解除阻塞,讓進程進入就緒狀態(tài):

A、調用sleep方法的經過了指定的休眠時間

B、線程調用的阻塞IO已經返回,阻塞方法執(zhí)行完畢

C、線程成功獲得了試圖同步的監(jiān)視器

D、線程正在等待某個通知,其他線程發(fā)出了通知

E、處于掛起狀態(tài)的線程調用了resume恢復方法


線程從阻塞狀態(tài)只能進入就緒狀態(tài),無法進入運行狀態(tài)。而就緒和運行狀態(tài)之間的轉換通常不受程序控制,而是由系統(tǒng)調度所致的。品牌網站建設,當就緒狀態(tài)的線程獲得資源時,該線程進入運行狀態(tài);當運行狀態(tài)的線程事情處理器資源時就進入了就緒狀態(tài)。但對調用了yield的方法就例外,此方法可以讓運行狀態(tài)轉入就緒狀態(tài)。


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

線程會在以下方式進入死亡狀態(tài):

A、run方法執(zhí)行完成,線程正常結束

B、線程拋出未捕獲的異常或Error

C、直接調用該線程的stop方法來結束線程—該方法易導致死鎖,注意使用

注意:當主線程結束的時候,其他線程不受任何影響。一旦子線程啟動后,會擁有和主線程相同的地位,不受主線程影響。


isAlive方法可以測試當前線程是否死亡,當線程處于就緒、運行、阻塞狀態(tài),該方法返回true,如果線程處于新建或死亡狀態(tài)就會返回false。不要試圖對死亡的線程調用start方法,來啟動它。死亡線程不可能再次運行。


反思&擴展

加深印象看個圖:

image.png

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權利。 粵ICP備09033321號

與項目經理交流
掃描二維碼
與項目經理交流
掃描二維碼
與項目經理交流
ciya68