美文网首页
Java-单例模式-线程安全问题

Java-单例模式-线程安全问题

作者: G_dalx | 来源:发表于2018-10-24 11:03 被阅读0次

单例设计模式:
懒汉式(延迟加载 等你需要的时候再创建对象 在多线程中会出现安全问题):
解决安全问题 加了同步操作 但是会降低效率 怎么解决效率低的问题 在单例模式中用if对单例对象进行双重判断解决。

class Single{
    private static Single s = null;
    private  Single () {
    }
    public static Single getInstense{
      if( s == null)
          s = new Single();
      return s;
    }
}

解决安全问题:

class Single{
    private static Single s = null;
    private  Single () {
    }
    public static Single getInstense{
      if( s == null){
              synchronize(Single.class) {
                  if( s == null)
                  s = new Single();
              }
       }
      return s;
    }
}

饿汉式(不管你需不需要这个对象创建了再说 在多线程中对对象的操作只有一条 所以相对安全):

class Single{
  private static final Single Single_getInsense = new Single();
  private Single(){
  }
  public static Single getInstense{
   return  Single_getInsense;
   }
}

相关文章

  • 设计模式——单例模式的破坏

    概述: 之前学习了单例模式的几种实现,解决了多线程情况下,单例的线程安全问题,保证了单例的实现。但是单例模式在下面...

  • Singleton 单例模式

    饿汉式单例模式 饿汉式单例模式 通过静态代码块增加异常处理 懒汉式单例模式 存在线程安全问题 懒汉式单例模式 解决...

  • Java-单例模式-线程安全问题

    单例设计模式:懒汉式(延迟加载 等你需要的时候再创建对象 在多线程中会出现安全问题):解决安全问题 加了同步操作 ...

  • 单例模式之双重检查的演变

    前言 单例模式本身是很简单的,但是考虑到线程安全问题,简单的问题就变复杂了。这里讲解单例模式的双重检查。 单例模式...

  • 多线程Debug窥探单例模式

    1. 懒汉式单例模式 通过延迟初始化,降低单例创建期间的资源开销。 懒汉式单例实现,存在线程安全问题 线程任务 在...

  • 关于java静态内部类的思考

    前言 最近在看多线程,讲到单例模式安全问题的时候。提到了单例的第四种模式——InnerClass模式。里面提到这种...

  • 05.单例模式(创建型)

    创建型模式-单例模式 一、饿汉式单利模式 饿汉式不需要考虑线程安全问题。 饿汉式比较浪费资源 二、懒汉式单例模式 ...

  • Java16-3 单例设计模式下的多线程访问

    当一个单例设计模式被多线程并发访问时,也会出现安全问题。 懒汉式单例设计模式(推荐使用) 不会因为同步而出现安全问...

  • 《设计模式》之单例模式

    定义: 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 单例模式实在是太简单了,主要是注意线程安全问题;...

  • 源码 : 设计模式之单例模式的5种实现

    RelaxHeart网-王琦:源码 : 设计模式之单例模式的5种实现 方式一:饿汉式 方式二:懒汉式 线程安全问题...

网友评论

      本文标题:Java-单例模式-线程安全问题

      本文链接:https://www.haomeiwen.com/subject/uysttqtx.html