线程安全又支持延迟加载的单例模式——Initialization on demand holder
2014-12-23 11:39
555 查看
当JVM加载LazyLoadedSingleton类时,由于该类没有static属性,所以加载完成后便即刻返回。只有第一次调用getIndtance()方法时,JVM才会加载LazyHolder类,由于它包含一个static属性singletonInstance,所以会首先初始化这个变量。
public class LazyLoadedSingleton{
private LazyLoadedSingleton(){
}
private static class LazyHolder{
private static final LazyLoadedSingleton singletonInstance = new LazyLoadedSingleton();
}
public static LazyLoadedSingleton getInstance(){
return LazyHolder.singletonInstance;
}
}
public class LazyLoadedSingleton{
private LazyLoadedSingleton(){
}
private static class LazyHolder{
private static final LazyLoadedSingleton singletonInstance = new LazyLoadedSingleton();
}
public static LazyLoadedSingleton getInstance(){
return LazyHolder.singletonInstance;
}
}
相关文章推荐
- 线程的单例模式与延迟加载中的Initialization on Demand Holder
- 并发环境下延迟加载Singleton实例的终极方案:Initialization-on-demand holder idiom
- 几种单例模式 尤其Initialization on demand holder模式
- Java单例模式的各种写法(Initialization on Demand Holder模式)
- 【Java】双重检查锁定(Double-checked locking)与延迟初始化(Initialization on demand holder)
- 几种单例模式 尤其Initialization on demand holder模式
- 几种单例模式 尤其Initialization on demand holder模式
- 几种单例模式 尤其Initialization on demand holder模式
- Initialization-on-demand holder idiom
- Initialization-on-demand holder idiom 单例
- Java练习题-编写一个线程安全的延迟加载单例模式(懒汉模式)
- [置顶] Java 多线程学习笔记(十一) 单例设计模式(延迟加载/懒汉模式)DCL解决线程安全问题
- C# 两行代码实现 延迟加载的单例模式(线程安全)
- Initialization-on-demand holder idiom
- Java单例模式之initialization on demand holder
- Lazy Initialization and the DAO pattern with Hibernate and Spring(Spring 与Hibernate的延迟加载和Dao模式)
- SL2 动态加载程序集---OnDemand模式
- Java练习题-编写一个线程安全的延迟加载单例模式(懒汉模式)
- 支持并发和延迟加载的单例模式
- 单例模式之Initialization Demand Holder (IoDH)