public static void main(Sting args[]){ Object a=null; new Thread(){ a=new xxx() }.start(); new Thread(){ a=new xxx() }.start(); }
Ich möchte fragen, ob die Methode xxx() eine komplexe Objektinitialisierungslogik enthält. Ist das Objekt durch das neue Schlüsselwort atomar? Wenn nicht, liegt dann das Problem einer Objektinitialisierungsstörung vor?
没明白你的意思,如果我猜得不错的话:
这完全取决于你的构造方法里面的具体的逻辑,毕竟代码是人写的。
输出:
另一个例子,构造器中包含同步块,每一个线程都需要等待前面的线程执行完成后才能执行。
输出:
建议参考线程安全的单例模式
不具有,比如构造方法中写了多条逻辑,在执行构造方法时,是可以中断的。
“原子性”这种描述太抽象,楼主提问的时候最好不要认为所有人对某个词的认识都完全一样。我只能说构造方法是线程安全的,对于每一个对象,构造方法只会被执行一次,只会被一个线程执行。