Windows 中的过程同步


Windows 操作系统是一个多线程内核,为实时应用程序和多处理器提供支持。在单处理器系统上,Windows 提供中断掩码以保护对全局资源的访问。它使用旋转锁保护对全局资源的访问。内核仅使用旋转锁保护短代码段,如 Solaris。内核确保线程在持有旋转锁时永远不会被抢占。

Windows 根据各种不同的机制(包括互斥体、信号量、事件和定时器)提供分派器对象进行线程同步。系统通过要求线程获得互斥体的所有权来访问数据,并在完成后释放所有权,从而保护共享数据。

事件充当条件变量,在所需条件发生时通知等待线程。

定时器用于在时间到时通知一个或多个线程。

分派器对象可以处于已发出信号状态或未发出信号状态。

已发出信号状态表示对象可用,并且线程在获取对象时不会阻塞。

未发出信号状态表示对象不可用,并且线程在尝试获取对象时会阻塞。

下图显示了互斥锁分派器对象的​​状态转换 -

图:互斥分派器对象

更新于:2019 年 10 月 11 日

2K+ 浏览量

启动您的 职业

完成课程并获得认证

开始
ADVERTISEMENT