【常用WinAPI】线程同步类
一、原子操作
InterlockedCompareExchange
InterlockedCompareExchangePointer
InterlockedDecrement
InterlockedExchange
InterlockedExchangeAdd
InterlockedExchangePointer
InterlockedIncrement
二、可等待的计时器
创建:CreateWaitableTimer
打开:OpenWaitableTimer
设置:SetWaitableTimer
取消:CancelWaitableTimer
三、事件
创建:CreateEvent
打开:OpenEvent
触发:PulseEvent
置位:SetEvent
复位:ResetEvent
四、互斥体
创建:CreateMutex
打开:OpenMutex
释放:ReleaseMutex
五、信号量
创建:CreateSemaphore
打开:OpenSemaphore
释放:ReleaseSemaphore
六、临界区
初始化:InitializeCriticalSection
初始化并设置自旋次数:InitializeCriticalSectionAndSpinCount
设置自旋次数:SetCriticalSectionSpinCount
进入:EnterCriticalSection
离开:LeaveCriticalSection
删除:DeleteCriticalSection
七、等待函数
等待单个:WaitForSingleObjects/WaitForSingleObjectsEx(第二个支持异步)
等待多个:WaitForMultipleObjects/WaitForMultipleObjectsEx(第二个支持异步)
在消息循环中等待多个:MsgWaitForMultipleObjects/MsgWaitForMultipleObjectsEx(第二个支持异步)
注册在线程池运行的等待函数:RegisterWaitForSingleObject
注销等待函数:UnregisterWait/UnregisterWaitEx(第二个会触发一个事件)
八、杂项
获取异步返回值:GetOverlappedResult
排队用户级异步操作:QueueUserAPC