线程 - 共享变量

时间:2011-09-27 13:12:27

标签: multithreading memory shared

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

实施例,

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

我想调用getSharedObject,如果我从同一个对象调用它,则总是看到相同的对象。所以我需要在一个内存位置写这个对象,同一个线程中的任何对象都可以看到这个对象。

有没有办法使用Windows API?或者我必须自己做?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果保存对象指针的变量是全局变量,则线程中的任何代码都可以访问它。而且,任何其他线程的代码也都可以。

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

请参阅win32函数TlsAllocTlsSetValueTlsGetValueTlsFree

另请参阅__declspec( thread ) here

相关问题