java ThreadSafe 中的对象构造是什么?请参考以下代码片段。
//We have some peace of code
public ABCClass(SomeOtherClass obj) {
obj.setState(XYZ);
}
然后某处有 50 个线程同时构造 ABCClass 对象。在构造时,我们正在改变 SomeOtherClass 对象的状态。
我的问题是这个构造过程是原子的,否则线程将看到 SomeOtherClass 对象的陈旧状态,因为它们在所有 ABCClass 实例之间共享。
编辑: obj 对象在所有构造函数中共享。
class SomeOtherClass{
private Status state;
public void setState(Status st){
this.state=st;
}
}
// Test Class
class TestClass{
public static void main(String[] args) {
final SomeOtherClass smc=new SomeOtherClass();
for(int i=0;i<50;i++)
{
new Thread(new Runnable() {
@Override
public void run() {
new ABCClass(smc);
}
}).start();
}
}
}