开发者社区> 问答> 正文

不用synchronized和lock能实现线程安全的单例吗?

不用synchronized和lock能实现线程安全的单例吗?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客pklijor6gytpx 2019-11-11 15:54:06 3241 0
2 条回答
写回答
取消 提交回答
  • 饿汉式单例模式天生线程安全,类加载的时候初始化一次对象即可

    2019-12-01 15:11:51
    赞同 展开评论 打赏
  • public class Singleton {
        private static final AtomicReference<Singleton> INSTANCE = new AtomicReference<Singleton>(); 
    
        private Singleton() {}
    
        public static Singleton getInstance() {
            for (;;) {
                Singleton singleton = INSTANCE.get();
                if (null != singleton) {
                    return singleton;
                }
    
                singleton = new Singleton();
                if (INSTANCE.compareAndSet(null, singleton)) {
                    return singleton;
                }
            }
    
    
    }
    

    }

    2019-11-11 15:54:32
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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