线程同步机制为线程协同工作而设计,windows系统中有多种机制可以用于线程同步,最常用的有下面几种:
- 互斥对象(Mutex)
- 时间对象(Event)
- 信号量(Semaphore)
- 临界区(critical section)
- 可等待计时器(waitable Timer)
同步过程中两个重要的概念是同步对象和等待函数:
同步对象:线程同步过程中需要先定义一个同步对象,具有标志的(signaled)和未标志的(nonsignaled),线程根据是否已经完成操作将同步对象视之为 标志的或未标志的。
等待函数:专门用于等待同步对象状态改变,线程调用等待函数后会暂停,直到同步对象的状态改变后,等待函数才会返回,线程继续执行,等待函数 分为“单对象”等待函数和“多对象”等待函数。
常用等待函数:WaitForSingleObject WaitForMultipeObject