【发布时间】:2012-08-17 06:48:00
【问题描述】:
C++11 标准包含一个新增功能 - thread_local 说明符 - 它使静态变量成为线程本地的。标准 thread_local 支持非平凡的类型 - 具有构造函数和析构函数的类型。不幸的是,GCC 通过作为扩展提供的 __thread 说明符仅支持琐碎的类型。有没有办法在__thread 之上模拟thread_local? __thread的实现非常快(相当于正则变量加两个间接),所以想避免热路径中的库函数。
我正在使用 GCC 和 Linux。不需要便携性。
【问题讨论】:
-
当然。您可以存储 __thread 指针而不是对象,但我认为这不是您想要的。
标签: c++ gcc c++11 thread-local