14

所以有一个Visual Studio 支持的 c++11 功能列表

thread_local 支持被标记为部分。我无法在这里找到对部分支持的确切含义的解释。他们只是别名 __declspec(thread) 吗?

我可以只使用 boost::thread_specific_ptr,但似乎有一些报告说boost::thread_specific_ptr 很慢。这可能是真的,也可能不是。

具体来说,我想要最新的 linux+gcc 和 windows+msvc 上的 x86/x64 上的快速 TLS。快速意味着尽可能没有系统调用(我认为这对于上述平台是可能的。)

4

1 回答 1

6

所以我对thread_local语义做了一些研究。gcc 的 __thread 和 msvc 的 __declspec(thread) 具有相同的语义和 thread_local (除了动态初始化,它可能已经或可能尚未成为标准。)所以这对我的用例来说真的不是问题。我将只定义一个别名为一个或另一个平台特定属性。

于 2012-01-07T21:51:43.603 回答