線程的生命周期
2022-05-17 20:20 作者:鱸魚懂個der的Java | 我要投稿
對于線程的生命周期可以理解為創(chuàng)建狀態(tài),就緒狀態(tài),執(zhí)行狀態(tài),死亡狀態(tài)
創(chuàng)建線程的兩種方式(創(chuàng)建狀態(tài))
第一種直接對繼承Thread類的子類new一個線程對象。
第二種可以通過runnable類的實例對象加上創(chuàng)建線程實例對象。
就緒狀態(tài):
執(zhí)行mian函數(shù)的時候執(zhí)行mian函數(shù)的主線程開始執(zhí)行代碼。開啟新的線程需要使用start函數(shù),如果需要對在線程運行的時候做一些事情的話,就需要重寫run方法。如果當(dāng)多線程搶占cpu的時候,如果時間輪片夠了意思是占用cpu時間到了,也會從執(zhí)行狀態(tài)轉(zhuǎn)到就緒狀態(tài),前提是線程的任務(wù)沒有完成或者線程沒有被終結(jié)
執(zhí)行狀態(tài):
等待線程開啟就會執(zhí)行run方法,線程狀態(tài)就從就緒狀態(tài)到執(zhí)行狀態(tài)。意味著有一個線程開始搶占cpu了。
死亡狀態(tài)
線程被終結(jié)或者任務(wù)完成即可。
這篇文章的基礎(chǔ)知識點解釋了線程的看起來是獨立執(zhí)行但微觀上是并行的問題還有線程的生命周期(從創(chuàng)建和執(zhí)行過程)。請參考操作系統(tǒng)中的調(diào)度算法。
標(biāo)簽: