单例模式涉及到一个单一的类,该类负责创建自己的对象,并且确保只有单个对象被创建,这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实例化该对象。
单例模式分类为两种:
饿汉式:类加载就会导致该实例对象被创建。
懒汉式:类加载不会导致实例对象的创建,首次使用时才会创建
饿汉式:懒汉式:
上面这种方式在多个线程并行时,可能会创建出多个对象,例如:线程1进入执行到if(intance = null)还没有return时,线程2也执行到这一步,这个时间由于线程1并没有return,所以此时intance还是null,那么线程2也会创建一个对象。
解决方法:在public static 后加上同步关键字(synchronized),代码如下:
双重检查锁模式我们还可以对上述项目进行优化,那就是双重检查锁模式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)