JAVA设计模式之懒汉式

public class LazySingleton {//缺点,多线程并发的时候会失效,getmInstance不同步,例子:一个线程在创建mInstance时,还未创建完成,另一个线程访问mInstance此时还是为空,又创建了一次

    private static LazySingleton mInstance;

    private LazySingleton(){

    }

    public static LazySingleton getmInstance(){
        if(mInstance == null){
            mInstance = new LazySingleton();
        }
        return mInstance;
    }
}
懒汉式进行了延迟加载,在调用getmIntance方法时才会去判断mInstance是否为空,如果为空,再去进行实例的创建。。但是在多线程操作的时候,可能会创建多个mInstance实例,比如在以下情况下:一个线程在创建mInstance实例时,mInstance实例还未创建完成,但是另外一个线程会去访问mInstance发现此时mInstance还是为空,这个时候该线程又会去再次创建一个mInstance实例,最后会有多个mInstance实例被创建,导致资源的浪费。

更多免费技术资料可关注:annalin1203

posted @ 2020-05-13 09:12  幽暗森林之猪大屁  阅读(179)  评论(0)    收藏  举报