互斥对象与事件对象属于内核对象 速度慢 多个进程实现同步,可以使用互斥对象和关键代码段
关键代码段 同步速度快 无法设定超时值 容易进入死锁 优先选择
互斥对象
HANDLE hMutex;
::hMutex=::CreateMutexA(NULL,FALSE,NULL);
::WaitForSingleObject(::hMutex,INFINITE);
::ReleaseMutex(::hMutex);
事件对象
HANDLE g_hEvent;
g_hEvent=::CreateEventA(NULL,FALSE,FALSE,NULL);
::WaitForSingleObject(::g_hEvent,INFINITE);
::SetEvent(::g_hEvent);//处理结束后,再将事件设置为有信号状态
关键代码段
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">CRITICAL_SECTION g_cs;</span>
::InitializeCriticalSection(&g_cs);
::EnterCriticalSection(&g_cs);
::LeaveCriticalSection(&g_cs);
::Sleep(1); </span>