多线程同步

来源:互联网 发布:比尔拉塞尔生涯数据 编辑:程序博客网 时间:2024/05/24 05:33

在MFC中,多线程运行,3种线程同步方式

1) 互斥对象   

      HANDLE hMutex = CreateMutex(NULL, FALSE, NULL)//产生互斥对象

     WaitForSingObject(hMutex, INFINITE)      // 请求互斥对象的所有权

   ReleaseMutex(hMutex)//释放互斥对象

2)事件对象

HANDLE g_hEvent

   g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL)//产生事件

WaitForSingleObject(g_hEvent, INFINITE)//请求事件对象

ReSetEvent(hEvent)//设置无信号状态

SetEvent(hEvent)//设置信号

3) 关键代码段(临界区)

CRITICAL_SECTION g_cs

InitializeCriticalSection(&g_cs)//初始化

DeleteCriticalSection(&g_cs) //不再需要时删除

EnterCriticalSection(&g_cs)//进入关键代码区

LeaveCriticalSection(&g_cs)//离开关键代码区








0 0
原创粉丝点击