• 单利模式


    单例模式
    使用单例模式Singleton(1)
    public class Singleton {
      private Singleton(){}
      //在自己内部定义自己一个实例,注意这是private
    //预加载
      private static Singleton instance = new Singleton();
      
    //这里提供了一个供外部访问本class的静态方法,
    //可以直接访问  public static Singleton getInstance() {    return instance;     }
    }

    使用单例模式Singleton(2)
    public class Singleton {
    //延迟加载
      private static Singleton instance = null;

    private Singleton (){} 
     public static synchronized Singleton getInstance() {  //这个方法比上面有所改进,不用每次都进行生成
    //对象,只是第一次使用时生成实例,提高了效率!
      if (instance==null)
       instance=new Singleton();
      return instance;   }
    }
    这种方式在多线程的情况下,由于每次获取实例的时候都要对getInstance()方法加锁,获取锁才能运行,效率会受影响。

    使用单例模式Singleton(3)
    双锁机制:
    public 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;  
      }
    }这种方式只是在初始化Singleton那部分代码的时候添加同步锁,这样提高了效率。

  • 相关阅读:
    宇宙纪录片
    IIC总线协议和时序
    使用MATLAB设计FIR滤波器
    rcosfir函数的用法
    ov5640介绍
    FPGA学习之路——PLL的使用
    输入信号与时钟变化一致时,非阻塞方式内部信号变化分析
    使用ChipScope Pro调试硬件
    FPGA烧完程序之后,检测不到网口的
    怎样才能使用ChipScope 加入被优化掉的信号
  • 原文地址:https://www.cnblogs.com/fengshaolingyun/p/6785079.html
Copyright © 2020-2023  润新知