win32可以使用
InterlockedIncrement
InterlockedDecrement
来使同一时间只有一个线程在访问变量
1 ULONG _stdcall CA::AddRef() 2 { 3 return InterlockedIncrement(&m_ref); 4 } 5 6 ULONG _stdcall CA::Release() 7 { 8 if (InterlockedDecrement(&m_ref) == 0) 9 { 10 delete m_ref;] 11 return 0; 12 } 13 return m_ref; 14 }