原子锁
多个线程同步访问一个简单变量的处理机制
LONG InterlockedIncrement(LONG volatile* lpAddend);
该函数提供多线程情况下,对一个变量以原子操作方式增加1
LONG InterlockedDecrement(LONG volatile* lpAddend);
该函数提供多线程情况下,对一个变量以原子操作方式减少1
LONG InterlockedExchange(LONG volatile* lpTarget,LONG lValue);
该函数提供在多线程情况下,以原子操作方式用lValue给lpTarget指向的目标变量赋值,并返回赋值以前的lpTarget指向的值。
LONG InterlockedExchangeAdd(LONG volatile* lpAddend,LONG lValue)
该函数提供在多线程情况下,以院子的操作方式将lpAddend指向的变量增加lValue,并返回调用前的lpAddend指向的目标变量的值。
Critical Section-临界区
速度快
只用于同一进程
InitializeCriticalSection EnterCriticalSection LeaveCriticalSection
Mutex
速度慢
可用于不同进程
CreateMutex ReleaseMutex
Semaphore
速度慢
可用于不同进程
CreateSemaphore OpenSemaphore ReleaseSemaphore
Event
速度慢
可用于不同进程
内核对象
WaitForSingleObject等待单个内核对象
WaitForMultipleObjects等待多个对象