單線程簡介

單線程顧名思義,就是隻有一個線程,默認情況下,系統爲應用程序分配一個主線程,該線程執行程序中以Main方法開始和結束的代碼。
線程具有生命週期,它包含3個狀態,分別爲出生狀態、就緒狀態和運行狀態。

出生狀態就是用戶在創建線程時處於的狀態,在用戶使用該線程實例調用Start方法之前,線程都處於出生狀態;當用戶調用Start方法後,線程處於就緒狀態(又被稱爲可執行狀態);當線程得到系統資源後就進入運行狀態。
一旦線程進入可執行狀態,它會在就緒與執行狀態下輾轉,同時也有可能進入等待、休眠、阻塞或死亡狀態。當處於運行狀態下的線程調用Thread類中Suspend方法,該線程處於等待狀態,進入等待狀態的線程必須調用Thread類中的Resume方法才能被喚醒;當線程調用一個Thread類中的Sleep方法時,線程就進入休眠狀態;如果一個線程在運行狀態下發出輸入/輸出請求,該線程將進入阻塞狀態,在其等待輸入/輸出結束時,線程進入就緒狀態,對於阻塞的線程來說,即使系統資源空閒,線程依然不能回到執行狀態;當線程執行完畢時,線程進入死亡狀態。
圖1描述了線程的生命週期的各個狀態。
 
圖1  線程的生命週期狀態圖
例如,新建一個Windows應用程序,程序會在Program.cs文件中自動生成一個Main方法,該方法就是主線程的啓動入口點。Main方法代碼如下。
[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章