【多线程系列】单例模式

文章目录

    • 啥是设计模式?
    • 单例模式
      • 单例模式的实现方式
        • 饿汉模式(线程安全)
        • 懒汉模式--单线程版(线程不安全)
        • 懒汉模式--多线程版(加锁-线程安全)
        • 懒汉模式--双重校验锁DCL(线程安全)
    • 如有错误,请批评指正!

单例模式是校招中最常考的设计模式之一。也是最简单的设计模式之一。

啥是设计模式?

设计模式就好比套路,软件开发中有许多常见的“问题场景”,有经验的程序员们总结出一些固定的套路,按照这个套路可以解决大部分软件开发遇到的问题。这些套路就称为“设计模式”。

单例模式

单例模式能保证每个类在程序中只创建出一份实例,不会创建多个实例。例如我们在JDBC编程中的DataSource实例。
单例模式属于创建型模式,提供一种创建对象的最佳方式。这个模式中涉及一个单一的类,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

单例模式的实现方式

需要注意的是:单例类只能有一个实例;单例类必须自己创建自己的唯一实例;必须给所有其他对象提供这一实例。

饿汉模式(线程安全)

类加载的同时,创建实例。这种方式比较常用,但容易产生垃圾对象。但是没有加锁就能保证单例,执行效率会提高。

public class Singleton {
   
    //创建 SingleObject 的一个对象
    private static Singleton instance = new Singleton();
    //私有的构造方法,防止在类外调用,禁止调用者在其他地方创建实例
    private Singleton(){
   

你可能感兴趣的:(多线程,java,后端,单例模式)