2011-09-27 121 views
1

我有一个多线程系统。我想在线程中创建一个对象,并且在此线程中运行的每个对象都可以查看此对象。主题 - 共享变量

例,

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

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

有没有办法做到这一点,使用Windows API?或者我必须自己做?

谢谢!

+0

您使用哪种编程语言? – ddso

回答

2

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

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

请参阅win32函数TlsAlloc,TlsSetValue,TlsGetValue和。

另请参阅__declspec(thread)here