锁定释放后等待线程的调用顺序是什么

时间:2015-05-18 11:12:11

标签: c# thread-safety locking

假设我有以下功能:

public void AddItems(List<Item> items)
{
    lock (_locker)
    {
        foreach (var item in items)
        {                   
            Buffer.Enqueue(item);                    
        }
    }
}

可以从许多不同的线程调用此函数。

lock关键字确保一个线程不进入代码的关键部分,而另一个线程处于临界区。如果另一个线程试图输入锁定的代码,它将等待,阻止,直到该对象被释放。 MSDN

虽然锁确保收到的项不会相互混合,但我想知道锁释放后等待线程的调用顺序是什么。

0 个答案:

没有答案