gpt4 book ai didi

.net - 线程是否可以在临界区中间被抢占?

转载 作者:可可西里 更新时间:2023-11-01 10:55:44 25 4
gpt4 key购买 nike

是否可以通过在 Windows 中禁用中断来实现临界区锁定?如果是这种情况,则当线程处于临界区中间时,它不能被抢占。

但如果是这种情况,即如果一个线程在执行关键部分时不能被抢占,那将使得 脉冲 监视器的整个点不如如果即使线程处于关键部分的中间,也可能会要求线程撤出 CPU。

所以,我真正的问题是:

  1. 在 Windows 中如何实现监视器?

  2. 线程处于临界区中间时是否可以被抢占?

最佳答案

Windows 的设计使得线程,即使在内核模式下运行,are always preemptible and always interruptible .所以临界区肯定不是通过禁止中断来实现的,也不会阻止抢占。

事实上,如果用户模式线程可以阻止中断和/或抢占,那么用户模式进程无意中导致整个系统崩溃将是微不足道的。因此,没有现代操作系统按照您建议的方式运行。

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

关于.net - 线程是否可以在临界区中间被抢占?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com