懒汉式
懒汉式,线程安全 双重锁定解决可能的线程安全问题
/*** 懒汉式,线程安全 双重锁定解决可能的线程安全问题。* 因为有可能thread1在if(instance==null)判断为真时进入了if体里但又没开始实例化,* 而这时thread2也进来了,最终就会有2个实例了。** @author liu.hb**/public static class SingletonDemoSave {private static SingletonDemoSave instance;private SingletonDemoSave() {super();}public static synchronized SingletonDemoSave getInstance() {synchronized (SingletonDemoSave.class) {instance = new SingletonDemoSave();}return instance;}}
饿汉式
/*** 饿汉式,线程安全 类一加载就实例化,提前占用系统资源** @author liu.hb**/public static class SingletonDemo1 {#创建实例private static SingletonDemo1 instance = new SingletonDemo1();private SingletonDemo1() {super();}public static SingletonDemo1 getInstance() {return instance;}}
