我有 6 个线程。 其中一个线程进入某个范围并打开“锁定”和所有其他线程 线程正在等待并希望进入相同的范围。
现在,其他线程是否会获得 CPU 时间?其他线程是否在线程调度中? 我知道所有其他线程都处于等待状态 - 但 CPU 将尝试让线程继续并尝试进入范围(即使范围不可访问)
最佳答案
当试图进入一个已经被占用的锁时,线程首先自旋锁一段时间,最后挂起并进入等待状态。
它们在旋转时仍然消耗 CPU 时间,但一旦等待就不再消耗 CPU 时间。
关于c# - 'Lock' 占用 CPU 时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9376480/