一、目的
使用内核对象进行线程同步。
二、等待函数
WaitForSingleObject 等待一个内核对象被触发。
三、事件内核对象
包含计数、是否自动,是否触发三个变量,用于配合等待函数。
四、可等待计时器内核对象
可以定时触发回调函数。(线程APC队列)
五、信号量
包含计数,最大资源计数,当前资源计数
1、当前可用资源大于0时,信号量处于触发状态。
2、当前可用资源等于0时,信号量处于非触发状态。
3、当前可用资源绝对不会大于最大资源且不会为负。
六、互斥量
包含计数,线程ID(占用线程),递归计数(占用几次)
1、线程ID为0时,为触发状态。
2、线程ID为非0时,为非触发状态。
注意问题:ReleaseMutex 如果调用者线程也是互斥量所有者时,会调用成功,否则不会。
七、其他
1、可以使用GetThreadWaitChain获取线程的等待链。