锁定声明C#

Jas*_*yon 6 c# locking

假设我有三个需要访问集合的线程,并且我在每个线程的访问周围使用了一个锁块.发生以下情况......

(1)线程1获取集合上的锁定
(2)线程2被阻塞
(3)线程3被阻塞

当线程1释放锁定时,谁可以接下来锁定?是FIFO访问吗?

谢谢

Amy*_*y B 17

你不应该关心谁接下来锁.

  • 你可以延伸说你*不能照顾.也许. (2认同)
  • http://msdn.microsoft.com/en-us/library/aa645740(VS.71).aspx#vcwlkthreadingtutorialexample4mutex"运行样本的机器的速度和操作系统会影响输出顺序." (2认同)

Dir*_*mar 5

您的问题暗示您正在寻找FIFO行为?然后你可能想尝试Jakub Sloup的这段代码:

监视/锁定,记住C#中的顺序以模拟FIFO

正如在其他答案中已经提到的,没有保证订单等待线程将获得锁定.