關於處理序和執行緒

每個 進程 都會提供執行程式所需的資源。 進程具有虛擬位址空間、可執行程式碼、對系統物件開啟控制碼、安全性內容、唯一進程識別碼、環境變數、優先順序類別、最小和最大工作集大小,以及至少一個執行執行緒。 每個進程都是以單一線程啟動,通常稱為 主要執行緒,但可以從其任何執行緒建立額外的執行緒。

執行緒是可以排程執行之進程內的實體。 進程的所有線程都會共用其虛擬位址空間和系統資源。 此外,每個執行緒都會維護例外狀況處理常式、排程優先順序、執行緒本機儲存體、唯一線程識別碼,以及系統用來儲存執行緒內容的一組結構,直到排程為止。 執行緒內容包括執行緒的一組電腦暫存器、核心堆疊、執行緒環境區塊,以及執行緒進程位址空間中的使用者堆疊。 執行緒也可以有自己的安全性內容,可用於模擬用戶端。

Microsoft Windows 支援 先占式多工處理,可建立從多個進程同時執行多個執行緒的效果。 在多處理器電腦上,系統可以同時執行電腦上有處理器的執行緒數目。

工作物件允許以單位方式管理進程群組。 工作物件是可進行、安全性實體、可共用的物件,可控制與其相關聯之進程的屬性。 在工作物件上執行的作業會影響與工作物件相關聯的所有進程。

應用程式可以使用 執行緒集 區來減少應用程式執行緒數目,並提供背景工作執行緒的管理。 應用程式可以將工作專案排入佇列、建立工作與可等候控制碼的關聯、根據計時器自動排入佇列,以及與 I/O 系結。

使用者模式排程 (UMS) 是一種輕量型機制,可供應用程式用來排程自己的執行緒。 應用程式可以在使用者模式中切換 UMS 執行緒,而不涉及 系統排程器 ,並在核心中的 UMS 執行緒封鎖時重新取得處理器的控制。 每個 UMS 執行緒都有自己的執行緒內容,而不是共用單一執行緒的執行緒內容。 在使用者模式中的執行緒之間切換的能力,讓 UMS 比短期工作專案需要少數系統呼叫的執行緒集區更有效率。

Fiber是應用程式必須手動排程的執行單位。 Fiber 會在排程它們的執行緒內容中執行。 每個執行緒都可以排程多個光纖。 一般而言,光纖不會提供優於設計完善的多執行緒應用程式的優點。 不過,使用 Fiber 可讓您更輕鬆地移植設計來排程自己的執行緒的應用程式。

如需詳細資訊,請參閱下列主題: