共用方式為


執行緒和處理序

更新:2007 年 11 月

執行緒和處理序在電腦科學中是相關的概念。兩者都代表必須以特定順序執行的指令序列。但是,不同執行緒或處理序中的指令能夠平行執行。

處理序存在於作業系統中,並對應至所謂的程式或應用程式。從另一方面來說,執行緒存在於處理序中。基於這個原因,執行緒有時候會稱為「輕量處理序」(Light-Weight Process)。每個處理序是由一或多個執行緒組成。

具有多個處理序能夠讓電腦同時執行一項以上的工作。具有多個執行緒能夠讓處理序分割工作以平行方式執行。使用多個處理器的電腦能夠在不同的處理器上執行處理序或執行緒。如此可達到真正的平行處理。

但是並非都能達到完美的平行處理境界。執行緒有時候必須進行同步處理。一個執行緒可能需要等候其他執行緒的結果,或是一個執行緒可能需要其他執行緒正在使用之資源的獨佔存取權。同步處理是多執行緒應用程式中發生錯誤的常見原因。有時候執行緒會演變成一直在等候永遠無法使用的資源。這會導致所謂的「死結」(Deadlock) 情況。

Visual Studio 偵錯工具提供強大而容易使用的工具以便偵錯執行緒和處理序。

Visual Studio 中偵錯執行緒和處理序的工具

在 [Visual Studio] 中使用處理序的主要工具是 [附加至處理序] 對話方塊、[處理序] 視窗和 [偵錯位置] 工具列。偵錯執行緒使用的主要工具是 [執行緒] 視窗、來源視窗中的執行緒標記,以及 [偵錯位置] 工具列。

下表顯示在這些位置中可用的資訊與能夠執行的動作:

使用者介面

可用的資訊

能夠執行的動作

[附加至處理序] 對話方塊

能夠附加至的可用處理序:

  • 處理序名稱 (.exe)

  • 處理序 ID 編號

  • Menubar 標題

  • 類型 (Managed、x86、x64、IA64)

  • 使用者名稱 (帳戶名稱)

  • 工作階段編號

選取要附加至的處理序。

選取遠端電腦。

變更連接至遠端電腦的傳輸類型

[處理序] 視窗

附加之處理序:

  • 處理序名稱

  • 處理序 ID 編號

  • 處理序 .exe 的路徑

  • Menubar 標題

  • 狀態 (中斷.執行)

  • 偵錯 (原生、Managed 等)

  • 傳輸類型 (預設、未經驗證的機器碼、智慧型裝置)

  • 傳輸限定詞 (遠端電腦)

工具:

  • 附加

  • 中斷連結

  • 結束

快速鍵功能表:

  • 附加

  • 中斷連結

  • 當偵錯停止時中斷連結

  • 結束

[執行緒] 視窗

目前處理序中的執行緒:

  • 執行緒 ID

  • 分類 (主執行緒、介面執行緒、遠端程序呼叫處理常式或背景工作執行緒)

  • 執行緒名稱

  • 建立執行緒的位置

  • 優先權

  • 暫止層級

快速鍵功能表:

  • 切換至執行緒

  • 凍結執行中的執行緒

  • 解除凍結執行緒

  • 爲執行緒加上旗標以便做進一步研究

  • 取消執行緒的旗標

  • 重新命名執行緒

  • 顯示和隱藏執行緒

其他動作:

  • 在資料提示方塊中檢視執行緒的呼叫堆疊

來源視窗

左裝訂邊中的執行緒指示區表示這是單一還是多個執行緒

快速鍵功能表:

  • 切換至執行緒。

  • 爲執行緒加上旗標以便做進一步研究

  • 取消執行緒的旗標

偵錯位置工具列

  • 目前的處理序

  • 目前的執行緒

  • 目前的堆疊框架

  • 切換至另一個執行緒

  • 切換至目前處理序中的另一個執行緒

  • 切換至目前執行緒中的另一個堆疊框架

  • 為執行緒加上旗標或取消旗標

  • 僅顯示有旗標的執行緒

請參閱

工作

HOW TO:使用處理序視窗

其他資源

附加至執行中處理序

偵錯多執行緒應用程式