/**
* Created with IntelliJ IDEA.
* Date: 14-9-2
* Time: 下午10:09
* To change this template use File | Settings | File Templates.
*/
public class SingleDemo {
public static SingleDemo singleDemo;
private SingleDemo() {
}
public static SingleDemo getSingleDemo() {
if (singleDemo == null) {
synchronized (SingleDemo.class) {
if (null == singleDemo) {
singleDemo = new SingleDemo();
}
}
}
return singleDemo;
}
//如果两个线程同时到达 synchronized (SingleDemo.class),一个线程拿到类锁,
//此时判断singleDemo是否为空,释放锁后,另外一个线程拿到类锁,此时有必要 判断singleDemo是否为空
//如果不需要第一次 singleDemo == null,会降低性能
}
单例模式中的 双重检查锁定
最新推荐文章于 2025-06-18 21:17:29 发布