6

假设我有以下声明:

thread_local std::atomic<void*> local_var;

是否local_var允许从其他线程进行修改?也就是说,如果我将地址传递local_var给另一个线程,local_var从那里修改不会召唤鼻恶魔吗?

4

1 回答 1

11

是的,允许修改另一个线程的线程局部变量。

变量的含义是thread_local名称引用每个线程中的不同对象,但这并不意味着该对象对其线程是私有的。如果你让变量知道它的名字以外的东西,即它的地址,那么其他线程可以访问它。

于 2013-07-04T22:34:00.923 回答