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)