G ++现在实现了C++ 11
thread_local关键字; 这与GNU__thread关键字的不同之处主要在于它允许动态初始化和销毁语义.不幸的是,这种支持需要对非函数局部thread_local变量的引用进行运行时惩罚, 即使它们不需要动态初始化,因此用户可能希望继续使用__thread具有静态初始化语义的TLS变量.
这种运行时惩罚的本质和来源究竟是什么?
显然,为了支持非函数局部thread_local变量,在进入每个线程main之前需要有一个线程初始化阶段(就像全局变量的静态初始化阶段一样),但是它们指的是一些超出该阶段的运行时惩罚?
粗略地说一下gcc的thread_local新实现的架构是什么?