オブジェクトの構築はJavaのThreadSafeにありますか?以下のコードスニペットを参照してください。オブジェクトの構築がアトミックかどうか
//We have some peace of code
public ABCClass(SomeOtherClass obj) {
obj.setState(XYZ);
}
次に、どこかの50スレッドがABCClassオブジェクトを同時に解釈しています。私たちはSomeOtherClassオブジェクトの状態を変更しています。
私の質問は、これはすべてのABCClassのインスタンス間で共有されているように、この建設プロセスはアトミックであるか、スレッドはSomeOtherClassオブジェクトの古くなった状態を見ることになります。
EDIT: 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();
}
}
}
あなた宣言 '' obj'程度ABCClassのパラメータが、どのようとしてob'。私に 'obj'の宣言を見せてください。 – nnhthuan
@ LukasEder:これは単なるケースです。 – amicngh
@nnhthuan:申し訳ありませんが、誤植です。彼らは同じです – amicngh