溫馨提示×

溫馨提示×

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

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

java_5:線程的生命周期和狀態(tài)轉(zhuǎn)換

發(fā)布時間:2020-08-06 10:59:59 來源:網(wǎng)絡(luò) 閱讀:369 作者:小西幾 欄目:編程語言

一、線程5個狀態(tài)的簡單介紹

開始:當(dāng)線程Thread對象創(chuàng)建完成時,線程的生命周期就開始了
結(jié)束:當(dāng)run()方法中代碼正常執(zhí)行完畢或者線程拋出一個未捕獲的異常(Exception)或錯誤(Error)時,線程的生命周期結(jié)束

  • 線程整個生命周期分為5個階段:
  • 新建狀態(tài)(New):此時僅由Java虛擬機(jī)為其分配了內(nèi)存,沒有表現(xiàn)出任何線程的動態(tài)特征,還不能運行
  • 就緒/可運行狀態(tài)(Runnable):線程對象調(diào)用了start()方法,具備了運行條件,此時線程位于可運行池中。但能否運行,要看是否獲得CPU使用權(quán),這需要等待系統(tǒng)額調(diào)度
  • 運行狀態(tài)(Running):就緒狀態(tài)的線程獲得了CPU的使用權(quán),開始執(zhí)行run()方法,
  • 阻塞狀態(tài)(Blocked):正在執(zhí)行的線程回音某些特殊的情況,放棄CPU使用權(quán),進(jìn)入阻塞狀態(tài),此時它不能進(jìn)入就緒隊列進(jìn)行排隊等候,只有消除阻塞原因后,才能轉(zhuǎn)為就緒狀態(tài)
  • 死亡狀態(tài)(Terminated):當(dāng)run()方法中代碼正常執(zhí)行完畢或者線程拋出一個未捕獲的異常(Exception)或錯誤(Error)時,線程進(jìn)入死亡狀態(tài)。一旦進(jìn)入死亡狀態(tài),線程將不再有運行的資格,也不能轉(zhuǎn)為其他狀態(tài)。

    二、狀態(tài)轉(zhuǎn)換關(guān)系圖:

java_5:線程的生命周期和狀態(tài)轉(zhuǎn)換

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

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

AI