'Lock'占用CPU时间吗?

时间:2012-02-21 11:08:16

标签: c# .net clr

我有6个帖子。 其中一个线程进入某个范围并打开“锁定”和所有其他 线程正在等待并想要进入相同的范围。

现在,其他线程是否会获得CPU时间?另一个线程是否在线程表中? 我知道所有其他线程都处于等待状态 - 但CPU将尝试使线程继续并尝试进入范围(即使范围不可访问)

2 个答案:

答案 0 :(得分:11)

当尝试输入已经采取的锁时,线程首先旋转锁定一段时间,然后暂停并进入等待状态。

他们在旋转时仍然会消耗CPU时间,但一旦等待就不再消耗它们。

答案 1 :(得分:0)

这不是锁的工作方式。你不会给任何人更多的“cpu时间”。如果您正在锁定,则可能会引入等待时间,并可能导致线程等待的死锁。