MFC的多线程同步和互斥

四种方式:

临界区

互斥量

信号量

事件

  特点 操作原语 MFC下的操作
临界区     虽然临界区同步速度很快,但却只能用来同步本进程内的线程

EnterCriticalSection()(定义在WinBase.h中)
LeaveCriticalSection()

CCriticalSection类
Lock()
UnLock()

互斥量

比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,

而且可以在不同应用程序的线程之间实现对资源的安全共享

CreateMutex()创建一个互斥量 
OpenMutex()打开一个互斥量 
ReleaseMutex()释放互斥量 
WaitForMultipleObjects()等待互斥量对象 
CMutex
信号量 信号允许多个线程同时使用共享资源,它指出了同时访问共享资源的线程最大数目     CreateSemaphore()创建一个信号量 
    OpenSemaphore()打开一个信号量 
    ReleaseSemaphore()释放信号量 
    WaitForSingleObject()等待信号量 
HANDLE 
事件 可以实现不同进程中的线程同步操作     CreateEvent()创建一个信号量 
    OpenEvent()打开一个事件 
    SetEvent()回置事件 
    WaitForSingleObject()等待一个事件 
    WaitForMultipleObjects()
HANDLE 

参考文章:

https://www.cnblogs.com/lyjclsd/p/3604416.html

新战场:https://blog.csdn.net/Stephen___Qin
原文地址:https://www.cnblogs.com/Stephen-Qin/p/12694596.html