码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2020-04-04 22:56:20      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:初始   线程   on()   class   懒汉   单例模式   调用   ati   private   

#懒汉式,线程安全
public class Singleton{
    private static Singleton instance;
    private Singleton(){}
    public static synchronized Singleton getInstance(){
        if (instance == null){
            instance = new Singleton();
    }
    return instance;  
    }
}

#优点:第一次调用才初始化,避免内存浪费。
#缺点:必须加锁 synchronized 才能保证单例,但加锁会影响效率。
#饿汉式
public class Singleton{
    private static Singleton instance = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return instance;
    }
}
#双检锁/双重校验锁
public class Singleton{
    private volatile static Singleton singleton;
    private Singleton(){}
    public static Singleton getSingleton(){
    if (singleton==null){
        synchronized (Singleton.class){
        if (single == null){
        singleton = new Singleton();
        }
        }
    }
    return singleton;
    }  
}

 

单例模式

标签:初始   线程   on()   class   懒汉   单例模式   调用   ati   private   

原文地址:https://www.cnblogs.com/liushoudong/p/12634416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!