關於進程和線程
每個 進程 都會提供執行程式所需的資源。 進程具有虛擬位址空間、可執行程式碼、開啟系統物件的句柄、安全性內容、唯一進程標識元、環境變數、優先順序類別、最小和最大工作集大小,以及至少一個線程的執行。 每個進程都是以單一線程啟動,通常稱為 主要線程,但可以從任何線程建立額外的線程。
線程 是進程內可以排程執行的實體。 進程的所有線程都會共用其虛擬位址空間和系統資源。 此外,每個執行緒都會維護例外狀況處理器、排程優先順序、執行緒本地儲存、唯一的執行緒識別碼,以及系統將用來儲存執行緒內容的一組結構,直到重新排程。 線程內容 包含線程的一組計算機緩存器、核心堆疊、線程環境區塊,以及線程進程位址空間中的用戶堆疊。 線程也可以有自己的安全性內容,可用來模擬用戶端。
Microsoft Windows 支援 先佔式多任務,這會產生從多個進程同時執行多個線程的效果。 在多處理器電腦上,系統可以同時執行與電腦處理器數量相等的線程。
作業物件 允許將進程群組當作一個單位來管理。 作業物件是可命名、可安全設置且可共享的物件,可控制與其相關聯的進程屬性。 作業物件上執行的作業會影響與作業對象相關聯的所有進程。
應用程式可以使用 線程集區 來減少應用程式線程數目,並提供背景工作線程的管理。 應用程式可以將工作專案排入佇列、將工作與可等候的句柄產生關聯、根據定時器自動排入佇列,以及與 I/O 系結。
使用者模式排程 (UMS) 是一種輕量型機制,應用程式可用來排程自己的線程。 應用程式可以在使用者模式中切換UMS線程,而不需要涉及 系統排程器,並在核心中封鎖UMS線程時重新取得處理器的控制。 每個UMS線程都有自己的線程內容,而不是共用單個線程的線程內容。 在使用者模式中在線程之間切換的能力,使得UMS比起需要較少系統呼叫的短時間工作項目的線程集區更為高效。
fiber 是應用程式必須手動排程的運行單元。 Fiber 會在排程它們的線程內容中執行。 每個線程都可以排程多個光纖。 一般而言,光纖不會比設計完善的多線程應用程式提供優勢。 不過,使用 Fiber 可讓您更輕鬆地移植設計來排程自己的線程的應用程式。
如需詳細資訊,請參閱下列主題: