开发者社区 问答 正文

单例模式在多线程环境下的lazy模式为什么要加两个if(instance == null)?

已解决

单例模式在多线程环境下的lazy模式为什么要加两个if(instance == null)?

展开
收起
游客4qo4tkog2emrs 2022-04-03 19:57:29 815 分享 版权
1 条回答
写回答
取消 提交回答
  • 推荐回答

    第一层 if (instance == null)是为了减少线程对同步锁锁的竞争,第二层if(instance==nul)是保证单例。

    (1)懒汉式多线程下是不安全的;

    (2)减少对同步锁的竞争,提高效率。

    2022-04-03 20:11:14
    赞同 展开评论