2011-09-27 85 views
1

我有一個多線程系統。我想在線程中創建一個對象,並且在此線程中運行的每個對象都可以查看此對象。主題 - 共享變量

例,

當我使用GetCurrentThreadID我總是得到相同的id,如果我在同一個線程調用它。

我想調用getSharedObject,並且如果我從同一個對象調用它,總會看到同一個對象。所以我需要將這個對象寫在一個內存位置,以便同一個線程內的任何對象都可以看到這個對象。

有沒有辦法做到這一點,使用Windows API?或者我必須自己做?

謝謝!

+0

您使用哪種編程語言? – ddso

回答

2

如果保存對象指針的變量是全局變量,那麼線程中的任何代碼都可以訪問它。而且任何其他線程的代碼也可以。

如果您希望每個線程看到不同的對象,那麼您希望線程本地存儲。

請參閱win32函數TlsAlloc,TlsSetValue,TlsGetValue和。

另請參閱__declspec(thread)here