单例模式

来源:互联网 发布:京东手机抢购软件 编辑:程序博客网 时间:2024/05/29 19:43

        生成单例的第一种方式。该方法没有并发问题

public class Singleton {//在类的内部生成唯一一个实例。private static Singleton instance = new Singleton();private Singleton(){} //构造方法为private,无法从外部实例化该类public static Singleton getInstance() { //返回唯一实例return instance;}}

        生成单例的第二种方式。该方式有并发问题。如果两个线程共同调用getInstance方法,第一个

线程if判断成功,开始创建对象但还没有赋值给instance属性时,第二个线程也开始if判断,判断成

功,那么第二个线程也会进入if语句,生成一个实例。那这样就不是单例了。

public class Singleton {//在类的内部生成唯一一个实例。private static Singleton instance;private Singleton(){} //构造方法为private,无法从外部实例化该类public static Singleton getInstance() { //返回唯一实例if (null == instance) {instance = new Singleton();}return instance;}}


0 0
原创粉丝点击