最近我的一个同事想出了一段代码,并询问我对代码线程安全的看法。下面是一个示例,说明了与代码相同的场景。
public class classA
{
public int DoWorkA()
{
//some logic
}
}
public class classB
{
public static classA objA = new classA();
}
public class classC
{
int DoWorkC ()
{
return classB.objA.DoWorkA();
}
}
现在,如果在 ClassC、ClassD 等不同类的不同实例中同时调用 ClassB.objA.DoWorkA() 是否会出现任何线程或“重叠”问题?是否应该将 objA 转换为实例成员?