Thread storage duration
From cppreference.net
一个标识符使用存储类说明符 _Thread_local (since C11) 声明的对象具有线程存储期。其生存期是创建该对象的线程的整个执行过程,其存储值在线程启动时被初始化。每个线程都有一个独立的对象,在表达式中使用声明名称时,引用的是与执行该表达式的线程相关联的对象。尝试从与对象不相关联的线程间接访问具有线程存储期的对象的结果是由实现定义的。
示例
运行此代码
const double PI = 3.14159; /* const variable is global to all threads */ _Thread_local unsigned int seed; /* seed is a thread-specific variable */ int main(void) { return 0; }
可能的输出:
(none)