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