两个线程调用同一个指针的问题
我有一个动态链接库,在这个动态链接库中存放各种算法的函数,假设该动态库是 ADLL,我在主程序中引入该动态库,这个动态库在主程序中也多处用到,并且有一个在主程序中也利用动态库中的函数创建了一套方法集合。现在我创建两个线程,这两个线程都用到了这套方法集合,而我引入的动态库是用指针形式引用的,那么,我在一个线程中更改指针的指向对象的值,怎么能在另外的一个线程中没有改变,有什么方法或者什么折中的方法没?
大概的示例代码如下:
ADLL:是动态链接库。
class __declspec( dllimport ) ADLL* pADLL; //主程序中引入
然后在主程序中的很多地方都用到了pADLL,
如:
A()
{
pADLL->.....
}
B()
{
pADLL->.....
}
然后创建两个线程:
m_hThread1 = CreateThread( NULL, 0, SockThreadProc,
this, 0, &m_dwThreadID1 );
m_hThread2 = CreateThread( NULL, 0, SockThreadProc,
this, 0, &m_dwThreadID2 );
DWORD WINAPI CSRC_COMM_Local::SockThreadProc(LPVOID lpParam)
{
A();
B();
}
现在的问题是,怎么在线程1中更改pADLL的东西,在线程2中可以保持不变,有什么方法?