通过禁用Windows中的中断是否可以实现关键节锁定?如果真是这样,那么当一个线程处于关键部分的中间时,就无法抢占该线程。

但是,如果是这种情况,即,如果在执行关键部分时无法抢占线程,那么与向线程发出即使在执行请求时也要撤出CPU时相比,向监视器发出脉冲的整个重要性就显得不那么重要了。它处于关键部分的中间。

因此,我真正的问题是:

  • Windows中如何实现监视器?
  • 线程在关键节的中间可以被抢占吗?
  • 最佳答案

    Windows的设计使即使在内核模式下运行are always preemptible and always interruptible也可以实现线程化。因此,关键部分肯定不能通过禁用中断来实现,并且不能防止抢占。

    实际上,如果用户模式线程可以阻止中断和/或抢占,则用户模式进程无意中使整个系统崩溃将是微不足道的。因此,没有任何现代操作系统会像您建议的那样运行。

    在Windows中,为monitors are usually implemented using condition variables,,由线程调度程序作为原语提供。我相信POSIX也是如此。

    09-16 05:24