【发布时间】:2011-11-28 05:29:50
【问题描述】:
如何定义不在不同线程之间共享的局部静态变量(在函数调用之间保持其值)?
我正在寻找 C 和 C++ 的答案
【问题讨论】:
-
您使用的是什么操作系统? TLS 在 unixen 和 windows 之间是不可移植的。
-
C++11 引入了另一个存储持续时间,称为
thread_local。尝试使用它。 -
@Nawaz:C++11 和 C11。在 C11 中,它是
_Thread_local,除非你还包括<threads.h>(它在thread_local中添加了一个#define,这在 C99 及更高版本中很常见)。
标签: c++ c multithreading static thread-safety