开发者社区> 问答> 正文

在Java的并发场景下,如何优化延迟初始化的问题隐患?

在Java的并发场景下,如何优化延迟初始化的问题隐患??

展开
收起
大葱蘸大酱2 2021-10-13 13:58:56 618 0
1 条回答
写回答
取消 提交回答
  • 在并发场景下,通过双重检查锁(double-checked locking)实现延迟初始化的优化问题隐患(可参考 The "Double-Checked Locking is Broken" Declaration),推荐解决方案中较为简单一种(适用于 JDK5 及以上版本),将目标属性声明为 volatile 型。

    反例:

    class Singleton {

    private Helper helper = null;

    public Helper getHelper() {

    if (helper == null) synchronized(this) {

    if (helper == null)

    helper = new Helper();

    }

    return helper;

    }

    // other methods and fields...

    }

    资料来源:电子书《阿里巴巴Java开发手册》,下载链接:https://developer.aliyun.com/topic/download?id=1092

    2021-10-13 14:01:26
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载