Java 单例模式的写法详解编程语言

public class Singleton { 
    /** 
     * 如果一个字段被声明成volatile 
     * java线程内存模型确保所有线程看到这个变量的值是一致的。 
     */ 
    private volatile static Singleton singleton; 
 
    /** 
     * 构造方法私有,外部无法实例化 
     */ 
    private Singleton() { 
    } 
 
    /** 
     * 提供静态方法 供外部调用 
     * 加入synchronized保证同步 
     * 双重检查锁定 
     * @return 
     */ 
    public static Singleton getSingleton() { 
        if (singleton == null) { 
            synchronized (Singleton.class) { 
                if (singleton == null) { 
                    singleton = new Singleton(); 
                } 
            } 
        } 
 
        return singleton; 
    } 
} 

作者:blog.ytso.com

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14280.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论