懒汉式–单例模式优化
package com.xmaven.test.designmodel;
/**
* @Author: Ambition
* @Description TODO
* @Date: 2022/1/4 5:23 PM
* @Version 1.0
*/
public class Singleton {
// 私有化无参数构造方法
private Singleton() {
}
// 定义一个私有化静态变量
private static Singleton sin = null;
// 第一种同步写法
// 创建开放的静态方法提供实例对象
private static synchronized Singleton getInstance1() {
if (null == sin) {
sin = new Singleton();
}
return sin;
}
// 第二种同步写法
// 创建开放的静态方法提供实例对象
private static Singleton getInstance2() {
synchronized (Singleton.class) {
if (null == sin) {
sin = new Singleton();
}
return sin;
}
}
// 第三种同步方法(优化版本)
/**
* @Description 每次进来都需要加锁,后面的程序都在进行等待的状态,我们只需要程序第一次进来的时候加锁创建一个对象
*/
private static Singleton getInstance3() {
if (null == sin) {
synchronized (Singleton.class) {
if (null == sin) {
sin = new Singleton();
}
}
}
return sin;
}
}
评论区