我有一个私有的静态字段,用于同步(锁定)。现在我有两个函数,我不希望它们同时执行。所以我做了这个:
public class Synchronization
{
private static object _lock = new object();
public void MethodA()
{
lock (_lock)
{
Console.WriteLine("I shouldn't execute with MethodB");
}
}
public void MethodB()
{
lock (_lock)
{
Console.WriteLine("I shouldn't execute with MethodA");
}
}
}
我知道锁定一个对象可以防止单个函数的并行执行,但是如果我在不同的方法中同时使用相同的锁对象,是否也会起到同样的作用?简单来说,就是在另一个函数中已经有一个锁定的对象,其他线程能否获取该对象的锁?