java单例--双锁检查
来源:互联网 发布:新疆电网络ipo 编辑:程序博客网 时间:2024/05/29 14:50
转自:http://blog.csdn.net/turkeyzhou/article/details/6179951
清单 4. 双重检查锁定示例(DCL)
public static Singleton getInstance()
{
if (instance == null)
{
synchronized(Singleton.class) { //1
if (instance == null) //2
instance = new Singleton(); //3
}
}
return instance;
}
以上可能得到一个没有初始化完成的对象,
jdk1.5后,可通过volatile修饰符解决
public class Singleton {
private volatile static Singleton anInstance;
private Singleton() {}
public static Singleton getInstance() { //若此处就用synchronized则每次getInstance的代价都非常高
if( anInstance == NULL ){ //可能多个线程第一次均同时满足此条件
synchronized ( Singleton.class ) { //此时才进行代价较高的synchronized
if( anInstance == NULL ) {
anInstance = new Singleton();
}
}
}
return anInstance;
}
}
- java单例--双锁检查
- 【Java】单例模式 双重检查锁
- java 单例模式(双重检查锁)
- Java单例模式中双重检查锁的问题
- Java 单例 双重检查锁的正确姿势
- Java单例模式中双重检查锁的问题
- Java单例模式中双重检查锁的问题
- 单例模式--双检查机制
- 单例模式双重检查锁问题
- 从学习“单例模式”学到的Java知识:双重检查锁和延迟初始化
- 如何在Java中使用双重检查锁实现单例
- 如何在Java中使用双重检查锁实现单例
- 如何在Java中使用双重检查锁实现单例
- 如何在Java中使用双重检查锁实现单例
- java单例双重检查锁为什么需要加volatile关键字
- 如何在Java中使用双重检查锁实现单例
- 如何在Java中使用双重检查锁实现单例
- 如何在Java中使用双重检查锁实现单例
- IP地址的分类
- Objective-C语法之异常处理
- 淘宝技术发展
- object-C练习小程序(3)
- Linux和uClinux比较分析
- java单例--双锁检查
- Intent的startActivityResult的用法
- 努力的游向岸边
- 如何去掉installsheild中的一些界面
- Objective-C语法之字符串NSString
- Windows核心编程(二十三)Windows挂钩
- eclipse的html插件安装
- 阴晴不定
- 相见,不如不见