Java线程安全单例模式

在写单例模式时应该对实例的初始化与否进行双重检查。
记住对实例的声明使用Volatile关键字,以保证单例模式是线程安全的


/**
 * Created by lufie on 2017/7/30.
 */
public class SingleInstance {

    public static volatile SingleInstance instance;

    private SingleInstance(){

    }

    public static SingleInstance getInstance(){
        if(instance==null){
            synchronized (SingleInstance.class){
                if(instance==null){
                    System.out.println("execute new method ...");
                    instance = new SingleInstance();
                }
            }
        }
        return instance;
    }

    public static void main(String[] args) {
        SingleInstance instance = SingleInstance.getInstance();
        System.out.println(instance);
        instance = SingleInstance.getInstance();
        System.out.println(instance);
    }

}
相关文章
相关标签/搜索