線程的狀態

Unstarted:線程上的 Thread.Start 還未被調用
Running:已調用 Thread.Start,且線程未被阻塞,也沒有 ThreadAbortException 處於掛起狀態
Aborted:Stopped 狀態
AbortRequested:已調用 Thread.Abort,但還未收到處於掛起狀態的ThreadAbortException
Stopped:線程已經停止
Suspended:線程已經被掛起
SuspendRequested:線程已被要求掛起
WaitJoinSleep:線程被阻塞,阻塞原因可能是 Wait、Sleep 或Join

 

下面來對上述成員作簡單解釋:

1、Unstarted:所有託管線程的初始狀態。處於這個狀態的線程僅佔用內存,不佔用 CPU 的資源,因此,理論上可創建無數個這種狀態的線程。
2、Running:當前線程已經由其它線程在其上執行 Thread.Start。前面已經提到,這樣狀態的線程在 Windows 中最大數目爲 2000 個。
3、Suspended:已啓動,但不處於活動狀態。
4、WaitJoinSleep:線程的這種狀態說明已被阻塞,原因有三種:
    a. 線程等待一個或多個對象(Wait),主要用於同步構造;
    b. 線程在特定的時間段內處於休眠狀態(Sleep);
    c. 線程在等待另一個線程結束(Join) 需要要說明的是一個線程不能使另一個線程進入此狀態,線程只能在自己的要求下進入此狀態。
5、Stopped:已正常結束,線程死亡,不能再被啓動。
6、Aborted:同 Stopped 狀態一樣,不過它是由於非正常結束而產生的一種狀態。

發佈了40 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章