最佳答案
来自 海湾合作委员会4.8草案变更日志:
G + + 现在实现了 C + + 11
thread_local
关键字; 这与 GNU__thread
关键字主要是因为它允许动态 初始化和销毁语义 需要对非函数局部引用进行运行时惩罚thread_local
变量即使不需要动态初始化, 因此,用户可能希望继续使用__thread
的 TLS 变量 静态初始化语义静态初始化语义。
这种运行时惩罚的性质和起源究竟是什么?
显然,为了支持非函数本地 thread_local
变量,在每个线程主要的条目之前都需要有一个线程初始化阶段(就像全局变量有一个静态初始化阶段一样) ,但是它们是否指的是运行时的损失?
粗略地说,gcc 的 thread _ local 的新实现的架构是什么?