线程在锁定FIFO上等待吗?

Mat*_*att 7 .net c# multithreading

假设我有以下代码

static class ...
{
    static object myobj = new object();

    static void mymethod()
    {
        lock(myobj)
        {
            // my code....
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后让我们说当thread1有锁定时,thread2尝试运行mymethod.是否会等待释放锁定或抛出异常?

如果它确实等待,是否确保订单,以便如果其他线程进入它们是FIFO?

Per*_*eck 8

更新了我的答案:它们排队,但订单不保证是FIFO.

看看这个链接:http://www.albahari.com/threading/part2.aspx

  • 不一定,请参阅:http://stackoverflow.com/questions/961869/is-there-a-synchronization-class-that-guarantee-fifo-order-in-c/961904 (4认同)