public class Singleton { /** * volatile关键字确保,当instance变量被初始化成Singleton实例时,多个线程正确的处理instance变量 */ private volatile static Singleton instance; private Singleton() {} public static Singleton getInstance() { //第一次检查 if(instance == null) { synchronized (Singleton.class) { //第二次检查,确保instance为空时才实例化对象 if(instance == null) { instance = new Singleton(); } } } return instance; } }
|
|
来自: Bradypod > 《design pattern》