在 C# 中,每個(gè)線程都有一個(gè)生命周期。線程的生命周期是在創(chuàng)建System.Threading.Thread
類(lèi)的實(shí)例時(shí)啟動(dòng)的。當(dāng)線程的任務(wù)執(zhí)行完成時(shí),線程的生命周期結(jié)束。
C# 中線程的生命周期中有以下?tīng)顟B(tài)。
未開(kāi)始
當(dāng)Thread
類(lèi)的實(shí)例被創(chuàng)建時(shí),默認(rèn)情況下它處于未啟動(dòng)狀態(tài)。
可運(yùn)行狀態(tài)
當(dāng)線程上的start()
方法被調(diào)用時(shí),它處于可運(yùn)行狀態(tài)或準(zhǔn)備運(yùn)行狀態(tài)。
運(yùn)行狀態(tài)
一個(gè)進(jìn)程中只能執(zhí)行一個(gè)線程。在執(zhí)行時(shí),線程處于運(yùn)行狀態(tài)。
不可運(yùn)行狀態(tài)
線程處于不可運(yùn)行狀態(tài),如果在線程上調(diào)用了sleep()
或wait()
方法,或者輸入/輸出操作被阻止。
死亡狀態(tài)
完成任務(wù)后,線程進(jìn)入死亡或終止?fàn)顟B(tài)。