开发者社区> 问答> 正文

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

已解决

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

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

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

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

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

    2022-04-03 20:11:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载