Monitor.TryEnter()

Man*_*zas 5 .net c# multithreading .net-4.0

我想知道Monitor Class.据我所知,所有等待的线程都不是FIFO.获取锁的第一个并不是等待队列中的第一个.它是否正确?有没有办法确保FIFO条件?

问候

Dor*_*hen 2

看看这个问题,我认为这对你非常有用 -Does lock()guarantee acquire in order requests?

尤其是这句话:

由于监视器在内部使用内核对象,因此它们表现出与操作系统同步机制相同的大致 FIFO 行为(在前一章中描述)。监视器是不公平的,因此如果另一个线程在唤醒的等待线程尝试获取锁之前尝试获取锁,则允许偷偷摸摸的线程获取锁。