如何实现线程安全的单例模式

  1. 单例模式懒汉式
    这个模式天生就是线程安全的,在类加载的时候就会初始化实例,但是这种模式的问题是内存中不管会不会用到这个对象,它都一直在那放着

  2. volatile+双重检查锁(DCL)
    双重检查锁保证了当前时刻只有一个线程可以进来初始化实例,而volatile保证了初始化实例的时候不会发生指令重排序,导致对象为null

你可能感兴趣的:(并发,Synchronized,多线程,Java内存模型)