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;  
        }  
    }  
    

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

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

  • 相关阅读:
    Data Wrangling文摘:Non-tidy-data
    Data Wrangling文摘:Tideness
    Python文摘:Mixin 2
    Python文摘:Mixin
    Python文摘:Python with Context Managers
    Python学习笔记11
    SQL学习笔记9
    SQL学习笔记8
    SQL学习笔记7
    Python学习笔记10:内建结构
  • 原文地址:https://www.cnblogs.com/zhangyi0331/p/8510831.html
Copyright © 2011-2022 走看看