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.这就违背了单例模式的初衷。

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

  • 相关阅读:
    高频交易程序竟然是饿罗斯人开发的?
    系统功能在用户测试阶段被推翻
    去新华书店有感
    金桔
    结香
    金钟花
    金丝桃
    箬竹
    香茶菜
    水果兰
  • 原文地址:https://www.cnblogs.com/wangxiangstudy/p/5190805.html
Copyright © 2011-2022 走看看