zoukankan      html  css  js  c++  java
  • 8 线程安全且高效的单例模式

    (1)双检查

      if(instance == null){//一次检查                                   

        synchronized (MySingleton.class) {

        if(instance == null){//二次检查                         

          instance = new MySingleton();                     

        }                 

      }             

     (2)静态代码块

      private static MySingleton instance = null;  

      private MySingleton(){}

      static{         

        instance = new MySingleton();     

      }

      public static MySingleton getInstance() {  

        return instance;     

      }

    (3)静态内置类

      private static class MySingletonHandler{          

        private static MySingleton instance = new MySingleton();  

      

      private MySingleton(){}

      public static MySingleton getInstance() {  

        return MySingletonHandler.instance;  

      }  

    (4)枚举类型

      public enum EnumFactory{            

        singletonFactory;

        private MySingleton instance; private EnumFactory(){//枚举类的构造方法在类加载是被实例化         

          instance = new MySingleton();     

        }      

        public MySingleton getInstance(){  

          return instance;  

        }  

      }  

      class MySingleton{//需要获实现单例的类,比如数据库连接Connection  

        public MySingleton(){}   

      }  

  • 相关阅读:
    python中深浅复制教程
    jquery easyui打开新的tab实现遮罩效果
    经典逻辑题 百人戴帽子问题
    JAVA反射机制示例 简单的Ioc实现
    Java研修录003标识符
    应该怎么管理程序员?
    内网VSFTP服务器的搭建
    如何彻底关闭WIN10防火墙
    使用 Visual Studio 调试器附加到正在运行的进程
    Qt+VS2019 英文翻译
  • 原文地址:https://www.cnblogs.com/JaneSJ/p/5915291.html
Copyright © 2011-2022 走看看