在C++中,thread_local
關鍵字用于聲明一個線程局部變量,這意味著每個線程都有其自己的變量副本。當線程結束時,線程局部變量的生命周期也隨之結束。因此,你不需要顯式地處理線程結束時的線程局部變量清理工作。
下面是一個簡單的示例,展示了如何使用thread_local
關鍵字:
#include <iostream>
#include <thread>
thread_local int threadLocalVar = 0; // 線程局部變量
void printThreadLocalVar() {
threadLocalVar += 1;
std::cout << "Thread ID: " << std::this_thread::get_id() << ", threadLocalVar: " << threadLocalVar << std::endl;
}
int main() {
std::thread t1(printThreadLocalVar);
std::thread t2(printThreadLocalVar);
t1.join();
t2.join();
return 0;
}
在這個示例中,我們創建了兩個線程t1
和t2
,它們都調用printThreadLocalVar
函數。由于threadLocalVar
是線程局部的,因此每個線程都有自己的threadLocalVar
副本。當線程結束時,其副本也會被銷毀,無需手動處理。