MFC多线程 —— 线程同步

时间:2022-05-04 23:44:05
线程间的同步

 常用的同步对象:

(1)临界区(Critical Section)

(2)互斥(Mutex) 

(3)信号量(Semaphore)

(4)事件(Event)


MFC提供了几种同步类和同步辅助类,包含在afxmt.h中
(1) 同步对象基类(CSyncObject)

         抽象类,为Win32中的同步对象提供通用性能


(2) 临界区类(CCriticalSection)

        当在一个时间内仅有一个线程可被允许修改数据或某些其他控制资源时使用,用于保护共享资源


(3) 互斥类(CMutex)

       有多个应用(多个进程)同时存放相应资源时使用,用于保护共享资源。


(4) 信号类(CSemaphore)

        一个应用允许同时有多个线程访问相应资源时使用,主要功能用于资源计算


(5) 事件类(CEvent)

     某个线程必须等待某些事件发生后才能存取相应资源时使用,以协调线程之间的动作。


(6) 同步辅助类(CSingleLock,CMultiLock)
       用于在一个多线程程序中控制对资源的访问。当在一个时间只需等待一个同步化对象时使用CSingleLock类,否则使用CMultiLock类。