显示器和锁之间的区别?

Goo*_*ber 11 locking mutual-exclusion thread-synchronization

显示器之间有什么区别?

如果一个锁只是一个互斥的实现,那么监视器只是一种利用方法执行之间等待时间的方法吗?

一个很好的解释将非常有用,谢谢......

问候

Joh*_*zen 14

例如,在C#.NET中,lock语句等效于:

Monitor.Enter(object);
try
{
    // Your code here...
}
finally
{
    Monitor.Exit(object);
}
Run Code Online (Sandbox Code Playgroud)

但是,请记住,监视器还可以Wait()Pulse(),这往往是在复杂的多线程情况下非常有用.

编辑: 在.NET框架的更高版本中,这被更改为:

bool lockTaken = false;
try
{
    Monitor.Enter(object, ref lockTaken);
    // Your code here...
}
finally
{
    if (lockTaken)
    {
        Monitor.Exit(object);
    }
}
Run Code Online (Sandbox Code Playgroud)