windows核心编程之互斥量对象

为什么非要把互斥量对象单独拉出来说下呢,因为,互斥量对象在特性方面与关键代码段特别相似

互斥量对象的使用规则:
1.如果线程ID为0,则表示这个线程不被任何对象所拥有,此时,互斥量对象发出信号
2.如果ID不是0,就表示这个互斥量对象已经被某个线程所拥有,此时互斥量对象不会发出信号,等待函数也无法
3.特殊情况:当等待函数发现ID不是0时,系统会比较试图获取线程对象的ID和互斥对象中记录的ID是否一样,如果一样,等待函数也可以返回,线程进入可调度状态
4.若在同一个线程中多次等待互斥量对象,则必须多次释放互斥量对象

互斥量对象特例:若一个线程获取了互斥量对象,但是没有释放互斥量对象,但是线程已经结束,则等待函数将等到一个互斥量对象已被抛弃的信号
互斥量对象与关键代码段的比较
windows核心编程之互斥量对象