zoukankan      html  css  js  c++  java
  • 单例

    饿汉式

    public class Single{

    //立即加载==饿汉式

    private static Single single = new Single();

    //私有化构造方法

    private Single(){

    }

    public static Single  getSingle(){

         return single;

         }

    }

    懒汉式

    public class Single{

    private static Single single;//只声明,不创建

    private Single(){//私有化构造方法

    }

    public static Single getSingle(){

       //延迟加载

       if(single != null){  

          }else{

            single  = new Single();

          }

    return single;

      }

    }

    上述懒汉式,存在线程安全的问题

    解决方法 1 在getSingle()方法上增加synchronized关键字,但是这样的效率太低了

    双重锁DCL

    public class Single{

    private volatile static Single single;

    private Single(){}

    public static Single  getSingle(){

          if(single != null){

           }else{

             synchronized(Single.class){

                    if(single == null){

                        single = new Single();

                        }

                }

             }

          return single;

        }

        

    }

  • 相关阅读:
    BZOJ 4525 二分
    BZOJ 4565 状压DP
    BZOJ 3930 容斥原理
    BZOJ 4562 搜索...
    BZOJ 4563 错排+高精度
    BZOJ 1833 数位DP
    BZOJ 4517 组合数+错排
    python 入门学习(二)
    python 入门学习
    Python 爬虫
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9695981.html
Copyright © 2011-2022 走看看