多线程环境单例模式

多线程环境单例模式 : 双重检测+上锁public class Singleton {/** * 构造器私有化防止被公共创建 */ private Singleton() {}//创建多线程锁 private static Object lock = new Object(); //单例本体 private static Singleton singleton = null; //获取单例 public static Singleton getInstance() {//当多线程环境中单例本体为空 if (singleton == null) {//上锁防止被其他线程抢夺 synchronized (lock) {//双重检查更加安全和符合业务场景 if (singleton == null) {//加锁和双重检测后初始化单例 singleton = new Singleton(); } } }//返回单例结果 return singleton; } }

    推荐阅读