zoukankan      html  css  js  c++  java
  • 多线程模式下的单例模式(饥汉模式和饿汉模式的简单区别)

    单例模式的要素:
    1.私有的静态的实例对象
    2.私有的构造函数(保证在该类外部,无法通过new的方式来创建对象实例)
    3.公有的、静态的、访问该实例对象的方法

    1.饿汉模式:

    public class Singleton1 {  
          
        private static Singleton1 singleton = new Singleton1();  
          
        private Singleton1(){  
              
        }  
          
        public static Singleton1 getInstance(){  
            return singleton;  
        } 
    } 
    

       优点:线程安全、绝对单例.

      缺点:在多实例或者有其他静态方法时,在启动时没有使用它的时候就已经加载好了,浪费内存。

    2.懒汉模式:

    public class Singleton2 {  
      
        private static Singleton2 singleton;  
          
        private Singleton2(){  
              
        }  
          
        public static synchronized Singleton2 getInstance(){  
            if(singleton == null)   
                singleton = new Singleton2();  
            return singleton;  
        }  
    }  
    

      优点:在没有使用时不用加载,节省内存。

        缺点:线程不安全,能防止反序列化、反射产生新的实例。

  • 相关阅读:
    最大流之dinic
    HDU 2485
    最小费用最大流
    HDU 1533
    HDU 1402
    HDU 1498
    HDU 1281
    Codeforces 283E Cow Tennis Tournament 线段树 (看题解)
    Codeforces 983E NN country 思维 (看题解)
    Codeforces 494D Birthday 树形dp (看题解)
  • 原文地址:https://www.cnblogs.com/zhangyi0331/p/8510831.html
Copyright © 2011-2022 走看看