Foo一旦安全发布,它就是线程安全的。例如,此程序可能会打印“不安全”(它可能不会使用hotspot /
x86的组合)-如果您进行
bar最终定格,则不会发生:
public class UnsafePublication { static Foo foo; public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { while (foo == null) {} if (!"abc".equals(foo.getBar())) System.out.println("unsafe"); } }).start(); new Thread(new Runnable() { @Override public void run() { foo = new Foo("abc"); } }).start(); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)