public static synchronized RealmHelper getInstance1() {
synchronized (RealmHelper.class) {
if (helper == null) {
helper = new RealmHelper();
}
}
return helper;
}
2、双重检查锁定 线程安全 双重检查
public static RealmHelper getInstance2() {
synchronized (RealmHelper.class) {
if (helper == null) {
helper = new RealmHelper();
}
}
return helper;
}
3、这种比上面1、2都好一些既实现了线程安全,又避免了同步带来的性能影响。
public static final RealmHelper getInstance3() {
return LazyHolder.INSTANCE;
}
private static class LazyHolder {
private static final RealmHelper INSTANCE = new RealmHelper();
}
饿汉式
1、直接实例化对象
private static RealmHelper helpers = new RealmHelper();
//静态工厂方法
public static final RealmHelper getInstance4() {
return helpers;
}