温馨提示×

C++ ThreadLocal 如何初始化

c++
小樊
100
2024-07-21 02:26:01
栏目: 编程语言

在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进行初始化,并输出其值。

需要注意的是,线程局部存储变量的初始化只会在每个线程第一次访问该变量时进行,后续访问将使用已经初始化的值。

0