单例设计模式之双重检查,提升并发效率

/**
* 单例设计模式
* @author codeMan
*
*/
public class Jvm {
//懒汉式,懒的建立,建立一个静态变量,能够仿照Runtime的JDk看看
private static Jvm instance=null;
//使用private,外面不能 建立对象,
private Jvm(){

}
//
public static Jvm getInstance(){
if(null==instance){
//双重判断,提升效率,对于高并发的时候,同步代码块,防止多个对象共享资源出现线程安全问题
synchronized (Jvm.class) {
if(null==instance){
instance=new Jvm();
}
}
}
return instance;
}
}
//使用内部类建立对象,这样的话能够延迟加载,咱们知道虚拟机是类用到的时候才加载,一开始不会加载这个内部类
class MyJvm{
private static class JvmMap{
private static MyJvm instance=new MyJvm();
}
private MyJvm(){

}
public static MyJvm getInstance(){

return JvmMap.instance;
}

}设计模式

相关文章
相关标签/搜索