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(){}   

      }  

  • 相关阅读:
    黄聪:C#中CefSharp的简单使用
    ArcGIS Pro关闭窗口和退出
    AddOverlay
    ArcGIS Pro固定纸张限定比例尺自动调整纵横打印
    ArcGIS pro增加一个独立表到地图
    ArcGIS Pro How to remove standalone table from contents
    ArcGIS Pro的进度条
    CreatePolygonGraphicElement
    Creating a Group with a List of Elements
    ArcGISPro理解多线程
  • 原文地址:https://www.cnblogs.com/JaneSJ/p/5915291.html
Copyright © 2011-2022 走看看