美文网首页
Java线程安全的单例模式

Java线程安全的单例模式

作者: Seaofdesire | 来源:发表于2018-11-10 21:22 被阅读0次

简单的单例模式(饿汉模式)

class SimpleSingleton {

    private static SimpleSingleton ss = new SimpleSingleton();

    private SimpleSingleton() {
    }

    public static SimpleSingleton getInstance() {
        return ss;
    }
}
  • 程序代码加载时,单例即初始化,加重系统负载.未实现懒加载

懒加载的单例模式

class LazySingleton {
    private static LazySingleton ls = null;

    private LazySingleton() {
    }

    public static synchronized LazySingleton getInstance() {
        if (ls == null) {
            ls = new LazySingleton();
        }
        return ls;
    }
}

双锁延迟加载

class DoubleLockSingleton {
    private static DoubleLockSingleton ds = null;

    private DoubleLockSingleton() {

    }

    public static DoubleLockSingleton getInstance() {
        if (ds == null) {
            synchronized (DoubleLockSingleton.class) {
                if (ds == null) {
                    ds = new DoubleLockSingleton();
                }
            }
        }
        return ds;
    }
}
  • 比LazySingleton锁粒度细一点

内部类实现(推荐)

class InnerSingleton {
    private InnerSingleton() {
    }

    public static InnerSingleton getInstance() {
        return InnerClass.ins;
    }

    private static class InnerClass {
        private static final InnerSingleton ins = new InnerSingleton();
    }
}
  • 无锁实现懒加载的单例模式

相关文章

  • Java 单例模式

    概述 Java中单例模式是一种常见的设计模式,单例模式总共有7种写法。 懒汉,线程不安全 懒汉,线程安全 饿汉 饿...

  • Kotlin 的单例模式

    Kotlin 的单例模式 1. 在 Java 中的单例模式 懒汉式单例模式,并且是线程安全 2. 在 Kotlin...

  • 单例模式的常用实现方式

    单例模式属于最常用的设计模式,Java中有很多实现单例模式的方式,各有其优缺点 实现方式对比 单例实现方式线程安全...

  • 单例

    单例,是Java中很重要的一个设计模式。 实现单例是要考虑并发(线程安全)问题的。 如何实现一个线程安全的单例?你...

  • 单例模式汇总

    Java单例模式 java单例模式是为了让全局只实例化一个对象,常用的方式包括懒汉模式、饿汉模式,考虑到线程安全,...

  • kotlin实现单例

    java实现单例模式 一直习惯于java的写法,java实现单例主要的思想是构造函数私有,然后考虑线程安全,在实现...

  • Kotlin设计模式-单例模式

    单例模式是项目中最常见的工具类使用模式 kotlin中单例的最佳实践方式,线程安全的懒汉模式 java中调用 ko...

  • 设计模式

    手写单例模式(线程安全) 你知道几种设计模式?单例模式是什么?Spring中怎么实现单例模式?

  • 设计模式(2) 单例模式

    单例模式 线程安全的Singleton 会破坏Singleton的情况 线程级Singleton 单例模式是几个创...

  • 深入理解 Java 内存模型

    一、概述 在之前 单例模式的Java实现与思考 一文里讲到,为了使用 DCL 实现线程安全的单例模式,需要对实例变...

网友评论

      本文标题:Java线程安全的单例模式

      本文链接:https://www.haomeiwen.com/subject/vmdtfqtx.html