我的问题可能听起来像这里的许多其他问题,但它有一种我没有找到的味道。
我试图理解以下逻辑
通用对象
public class GenericClass
{
public static void DoSomething(Object lockObj)
{
lock(lockObj)
{
// do something here
}
}
}
A级
internal class A
{
private static _aLock = new Object();
public void Do_A_Thing()
{
GenericClass.DoSomething(_aLock);
}
}
B类
internal class B
{
private static _bLock = new Object();
public void Do_B_Thing()
{
GenericClass.DoSomething(_bLock);
}
}
我只是希望确认我的解释是否正确:
如果“A”类的多个线程将尝试同时访问“genericClass”方法“DoSomething”中的代码,则该方法将被锁定到除一个“A”类实例之外的所有实例。但是“B”类的单个实例将能够随时继续执行。如果“B”类也将执行多个实例,则它们不会干扰“A”类锁。
根据您在上面看到的内容,这是正确的吗?