Android设计模式 单例模式(Double CheckLock模式)
2016-03-31 17:17
288 查看
Double CheckLock简称DCL模式, 优点是既能够保证用到的时候才初始化单例,又能够保证现成安全,且单例对象初始化后调用getInstance不进行同步锁。 代码如下
package demo; public class Singleton { private static Singleton mInstance = null; private Singleton() { } public static synchronized Singleton getInstance() { if (mInstance == null) { synchronized (Singleton.class) { if (mInstance == null) { mInstance = new Singleton(); } } } return mInstance; } }
getInstance方法中进行了2次判断null,第一次判断是避免不必要的同步,第二次是在null的情况下创先实例。
DCL优点:资源利用率高,第一次执行getInstance才会被实例化,效率高。 缺点:第一次加载时反映稍慢,也由于内存模型的原因偶尔会失败。在高并发的环境下也有一定的缺陷,虽然发生率很小。 DCL是使用最多的单例实现方式,它能够在需要时才实例化,并且能够在大多数时保证对象唯一性。 注:不低于JDK1.6版本以下
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories