首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

C# 多執行緒機制初探(一):基本觀念與單一執行緒控制

     編輯:C# 入門

多執行緒核心觀念

Windows 是多工作業系統,透過工作管理員可觀察執行中的程序與進程。進程是執行中程式的實例,包含程式碼、記憶體與系統資源。一個進程由多個執行緒組成,執行緒是程式中的執行流,擁有專屬暫存器(堆疊指標、程式計數器等),但共用程式碼區段。

多執行緒優勢

  • 提升 CPU 利用率:當一個執行緒等待 I/O 時,CPU 可切換執行其他執行緒
  • 回應性更佳:瀏覽器可同時下載檔案、捲動頁面、播放動畫

潛在缺點

  • 記憶體開銷:每個執行緒需佔用堆疊空間
  • 管理複雜度:需 CPU 時間追蹤、協調執行緒
  • 共享資源競爭:需解決同步、死結問題
  • 除錯困難:執行緒過多易產生難以重現的 Bug

公司比喻

將進程比作公司,執行緒比作員工:

  • 公司至少需一名員工(進程至少一個執行緒)
  • 單一員工效率低,難以擴展(單執行緒程式效率低)
  • 員工越多薪資(資源)越高,管理協調成本越大
  • 現代商業軟體幾乎皆為多執行緒

C# 執行緒基礎操作

所有多執行緒相關類別位於 System.Threading 命名空間。核心類別 Thread 提供:

  • Start():啟動執行緒
  • Sleep(ms):暫停目前執行緒
  • Abort():終止執行緒
  • Suspend()/Resume():暫停/恢復執行緒(已過時,不建議使用)

第一個執行緒範例

using System;
using System.Threading;

namespace ThreadTest
{
    class RunIt
    {
        [STAThread]
        static void Main(string[] args)
        {
            Thread.CurrentThread.Name = "System Thread";
            Console.WriteLine(Thread.CurrentThread.Name + " Status:" + Thread.CurrentThread.ThreadState);
            Console.ReadLine();
        }
    }
}

輸出:System Thread Status:Running

Thread.CurrentThread 為靜態屬性,取得目前執行的執行緒實例。靜態屬性在所有實例間共享,符合「同一時間 CPU 僅執行一個執行緒」的特性。

控制台應用程式範本

本系列範例均使用控制台應用程式,並於結尾加入 Console.ReadLine() 暫停輸出,便於觀察執行流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved