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

/**
* 单例设计模式
* @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;
}

}

 

posted @ 2016-12-29 17:39  耳朵像图图  阅读(296)  评论(0编辑  收藏  举报