在C++中,可以使用std::thread_local
關鍵字來聲明一個線程局部存儲變量。線程局部存儲變量會為每個線程創建一個單獨的實例,并且只能在聲明線程內部訪問。
要初始化一個線程局部存儲變量,可以使用以下語法:
#include <iostream>
#include <thread>
std::thread_local int thread_local_var = 0;
void thread_func() {
// 初始化線程局部存儲變量
thread_local_var = 10;
// 訪問線程局部存儲變量
std::cout << "Thread local variable value: " << thread_local_var << std::endl;
}
int main() {
// 創建一個線程
std::thread t1(thread_func);
// 等待線程結束
t1.join();
return 0;
}
在上面的例子中,thread_local_var
是一個線程局部存儲變量,通過std::thread_local
關鍵字聲明。在thread_func
函數內部,我們對thread_local_var
進行初始化,并輸出其值。
需要注意的是,線程局部存儲變量的初始化只會在每個線程第一次訪問該變量時進行,后續訪問將使用已經初始化的值。