public class SingleMode {
private static SingleMode singleMode;
//构造函数用private修饰是为了防止在其他地方创建该实例
private SingleMode() {
}
public static SingleMode getInstance() {
/**
* 此处判断singleMode == null,是为了防止singleMode已经初始化后,还会继续调用同步锁,造成不必要的损耗。
*/
if (singleMode == null) {
// 加锁的目的是为了防止多线程同时进入造成对象多次实例化
synchronized (SingleMode.class) {
// 此处判断singleMode == null,是为了防止对象重复实例化
if (singleMode == null) {
singleMode = new SingleMode();
}
}
}
// 返回实例对象
return singleMode;
}
}
Android单例双重锁实现
最新推荐文章于 2022-09-21 15:18:57 发布