zoukankan      html  css  js  c++  java
  • 单例模式的多种实现方式

    //需要时加锁,双重校验
    class CustomSingleton{
    
       private static CustomSingleton customSingleton = null;
    
       private CustomSingleton(){};
    
       public static CustomSingleton getCustomSingleton(){
          if(customSingleton==null){
             synchronized (CustomSingleton.class) {
                if(customSingleton==null) {
                   customSingleton = new CustomSingleton();
                }
             }
          }
          return customSingleton;
       }
    }
    
    /*
    //需要时加锁,有并发问题
    class CustomSingleton{
    
       private static CustomSingleton customSingleton = null;
    
       private CustomSingleton(){};
    
       public static CustomSingleton getCustomSingleton(){
          if(customSingleton==null){
             synchronized (CustomSingleton.class) {
                customSingleton = new CustomSingleton();
             }
          }
          return customSingleton;
       }
    }*/
    
    /*
    //不加锁,有并发问题
    class CustomSingleton{
    
       private static CustomSingleton customSingleton = null;
    
       private CustomSingleton(){};
    
       public static CustomSingleton getCustomSingleton(){
          if(customSingleton==null){
             customSingleton = new CustomSingleton();
          }
          return customSingleton;
       }
    }*/
    
    /*
    //暴力同步锁
    class CustomSingleton{
    
       private static CustomSingleton customSingleton = null;
    
       private CustomSingleton(){};
    
       public static synchronized CustomSingleton getCustomSingleton(){
          if(customSingleton==null){
             customSingleton = new CustomSingleton();
          }
          return customSingleton;
       }
    }*/
    
    /*
    //线程安全  常量初始化
    class CustomSingleton{
    
       private static CustomSingleton customSingleton = new CustomSingleton();
    
       private CustomSingleton(){};
    
       public static CustomSingleton getCustomSingleton(){ return customSingleton;}
    }
    */
    
    /*
    //枚举单例
    enum CustomSingleton{
    
       SINGLETON;
    
       public void print(){
          System.out.println(123);
       }
    }*/
  • 相关阅读:
    原生JS(类、原型、构造函数)
    原生JS(cookie操作的封装)
    原生JS(cookie)
    原生JS(异步请求)
    原生js(1)
    iframe框架嵌套页面(全屏,页面上下左右有空白,去双滚动条)
    Zabbix4.0监控Nginx1.16
    Nginx1.16访问限制
    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
    Zabbix4.0解决中文乱码
  • 原文地址:https://www.cnblogs.com/gavinYang/p/11202246.html
Copyright © 2011-2022 走看看