共用方式為


執行緒區域儲存區

執行緒區域儲存區 (Thread Local Storage,TLS) 是一種方法,讓指定多執行緒處理序中的每個執行緒用來配置位置,以儲存執行緒特定資料。 方式包括透過 TLS API 支援繫結 (run-time) 執行緒特定的資料是以動態方式 ([TlsAlloc], [TlsGetValue], [TlsSetValue],以及[TlsFree])。 除了現有的 API 實作之外,Win32 和 Visual C++ 編譯器現在支援靜態的繫結 (載入時間) 每個執行緒資料。

TLS 的 API 實作

執行緒區域儲存區是由 Win32 API 層和編譯器實作。 如需詳細資訊,請參閱 Win32 API 文件[TlsAlloc], [TlsGetValue], [TlsSetValue],以及[TlsFree]。

Visual C++ 編譯器包含關鍵字使 TLS 作業更自動化,而不是經由 API 層。 這個語法會在下一段 TLS 的編譯器實作裡說明。

TLS 的編譯器實作

為了支援 TLS,新屬性 thread 已經加入至 C 和 C++ 語言並且由 Visual C++ 編譯器支援。 這個屬性是擴充儲存類別修飾詞 (Modifier),如同前一節所述。 使用 __declspec 關鍵字來宣告 thread 變數。 例如,下列程式碼宣告整數執行緒區域變數,並使用值將它初始化:

__declspec( thread ) int tls_i = 1;

請參閱

概念

使用 C 和 Win32 進行多執行緒處理

TLS 的規則和限制