zoukankan      html  css  js  c++  java
  • java中两种单例模式

    //懒汉式(线程不安全)
    class LazySingleton{
        private static LazySingleton singleton;
        
        private LazySingleton(){}
        
        public static LazySingleton getInstance(){
            if(singleton==null){
                singleton = new LazySingleton();
            }
            return singleton;
        }
    }
    
    //饿汉式(推荐使用)
    class eSingleTon{
        private static eSingleTon singleton = new eSingleTon();
        
        private eSingleTon(){}
        
        public static eSingleTon getInstance(){
            return singleton;
        }
    }

    上面两个是单例模式,想必都不陌生。

    对于懒汉式有个缺点,就是在多线程的情况会有一定的问题存在。假如线程A和线程B同时实例这个单例。进入if的判空就会分别实例出一个singleton.这就违背了单例模式的初衷。

    这里推荐使用饿汉式,每次都会实例化,避免了多线程的问题

  • 相关阅读:
    实验6.1
    SOA
    python的镜像包安装
    中文分词:双向匹配最大算法(BI-MM)
    从github中获取代码
    解决文件冲突
    创建分支
    上传本地文件到github
    mysql事务
    查询练习2
  • 原文地址:https://www.cnblogs.com/wangxiangstudy/p/5190805.html
Copyright © 2011-2022 走看看