Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 线程-共享变量_Multithreading_Memory_Shared - Fatal编程技术网

Multithreading 线程-共享变量

Multithreading 线程-共享变量,multithreading,memory,shared,Multithreading,Memory,Shared,我有一个多线程的系统。我想在线程中创建一个对象,在这个线程中运行的每个对象都可以查看这个对象 例如 当我使用GetCurrentThreadID时,如果我从同一线程调用它,我总是得到相同的id 例如,我想调用getSharedObject,如果我从同一个对象调用它,就会始终看到同一个对象。所以我需要将这个对象写入一个内存位置,使同一线程中的任何对象都可以看到这个对象 使用Windows API,是否还有其他方法可以做到这一点?还是我必须自己做 谢谢 如果保存对象指针的变量是全局变量,那么线程中的

我有一个多线程的系统。我想在线程中创建一个对象,在这个线程中运行的每个对象都可以查看这个对象

例如

当我使用GetCurrentThreadID时,如果我从同一线程调用它,我总是得到相同的id

例如,我想调用getSharedObject,如果我从同一个对象调用它,就会始终看到同一个对象。所以我需要将这个对象写入一个内存位置,使同一线程中的任何对象都可以看到这个对象

使用Windows API,是否还有其他方法可以做到这一点?还是我必须自己做


谢谢

如果保存对象指针的变量是全局变量,那么线程中的任何代码都可以访问它。对于这一点,来自任何其他线程的任何代码也可以

如果希望每个线程看到不同的对象,则需要线程本地存储

请参阅win32函数
TlsAlloc
TlsSetValue
TlsGetValue
TlsFree


另请参见
\u declspec(thread)

您使用的是哪种编程语言?