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

关于单例模式的想法-volatile

时间:2017-09-07 19:33:45      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:ret   syn   写入   private   关于   单利   关键字   new   修改   

今天看着一个多线程并发用到的关键字:volatile,看了不少资料发现这个是一个共享的直接写入内存使用的关键字修饰变量,用来修饰类变量或者类静态变量,所以有了一个关于单利模式的想法,我们都知道的单例模式的一个写法是:

class Singleton{
    private static Singleton instance = null;
 
    private Singleton() {
 
    }
 
    public static Singleton getInstance() {
        if(instance==null) {
            synchronized (Singleton.class) {
                if(instance==null)
                    instance = new Singleton();
            }
        }
        return instance;
    }
}

  当然单例模式还有其他的写法,我要说的是将关键字volatile加在变量instance上:

class Singleton{
    private volatile static Singleton instance = null;
 
    private Singleton() {
 
    }
 
    public static Singleton getInstance() {
        if(instance==null) {
            synchronized (Singleton.class) {
                if(instance==null)
                    instance = new Singleton();
            }
        }
        return instance;
    }
}

  因为用votalite修饰的变量,在修改时是直接将变量值写进物理内存中去的,不会写入缓存中去,这样,单例模式就更加的,,,,好了

关于单例模式的想法-volatile

标签:ret   syn   写入   private   关于   单利   关键字   new   修改   

原文地址:http://www.cnblogs.com/milude0161/p/7490933.html

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