假设我有以下声明:
thread_local std::atomic<void*> local_var;
是否允许从其他线程修改 local_var
?也就是说,如果我将 local_var
的地址传递给另一个线程,是否会从那里修改 local_var
召唤鼻恶魔?
最佳答案
是的,允许修改另一个线程的线程局部变量。
对于变量,thread_local
的意思是名称 指的是每个线程中的不同对象,但这并不意味着该对象对其线程是私有(private)的。如果您通过名称以外的其他方式(即地址)让变量为人所知,那么其他线程就可以访问它。
关于c++ - 其他线程可以修改线程本地内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478474/