以下代码是否会在.NET上使用C#导致死锁?
class MyClass
{
private object lockObj = new object();
public void Foo()
{
lock(lockObj)
{
Bar();
}
}
public void Bar()
{
lock(lockObj)
{
// Do something
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在学习C#中的多线程,我在下面看到了一个代码
static readonly object _locker = new object();
static void Main()
{
lock (_locker)
{
AnotherMethod();
// ...some work is going on
}
}
static void AnotherMethod()
{
lock (_locker) { Console.WriteLine ("Another method"); }
}
Run Code Online (Sandbox Code Playgroud)
我想知道什么时候需要使用嵌套锁定?在这种情况下为什么不只使用一个锁?