单例模式-双重检测锁(不建议使用)Demo

来源:互联网 发布:java list() 编辑:程序博客网 时间:2024/06/05 23:06

1.代码

/** * 双重检测锁实现单例模式 * @author lenovo * */public class SingletonDemo3 {private static SingletonDemo3 instance = null;public static SingletonDemo3 getInstance(){if(instance == null){SingletonDemo3 sc;synchronized(SingletonDemo3.class){sc = instance;if(sc == null){synchronized(SingletonDemo3.class){if(sc == null){instance = new SingletonDemo3();}}instance = sc;}}}return instance;}}

2.说明

2.1.由于编译器优化原因和jvm内部模型原因,偶尔会出问题,不建议使用;
2.2.该模式将同步内容,下放到if内部,提高了执行效率,不必每次获取对象时都进行同步,只有第一次才同步,创建了以后就没必要了。


原创粉丝点击