Haisen大王 2021-01-09 20:03 采纳率: 50%
浏览 107

Java DCL 双检锁 到底安全不安全

在 JDK7 和 JDK8 等,多线程环境里,

if(xx == null)
    xx = new Xx();

这样是否安全?
--------------------------

比较典型的例子就是 DCL 双检锁,最近到处找文章看,
往上大批量的都是因为编译器等指令重排,造成:xx = 一个未完整初始化完整的对象。

----------——

这让我有点怀疑码生呀,我写了这么多年的代码,原来全是 BUG 呀。

  • 写回答

4条回答 默认 最新

  • DreamCaters 2021-01-11 22:20
    关注

    xx不是被volatile修饰了嘛?

    评论

报告相同问题?