1. 单例设计模式介绍
单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法)。
使用双端检索的方法
既能解决线程安全的问题,同时解决懒加载问题,同时保证了效率。
public class Person {
private volatile static Person instance;
private Person() {}
public static Person guiguBoss() {
if (instance == null) {
synchronized (Person.class) {
if(instance == null){
instance = new Person();
}
}
}
return instance;
}
}
- Double-Check 概念是多线程开发中常使用到的,如代码中所示,我们进行了两次 if (singleton = = null)检查,这 样就可以保证线程安全了。
- 这样,实例化代码只用执行一次,后面再次访问时,判断 if (singleton = = null),直接 return 实例化对象,也避 免的反复进行方法同步.
- 线程安全;延迟加载;效率较高
|