zoukankan      html  css  js  c++  java
  • 多线程下单例

    1.什么是单例模式?

                 单例模式是为确保一个类只有一个实例,并为整个系统提供一个全局访问点的一种模式方法。

        单例的特点: 

                在任何情况下,单例类永远只有一个实例存在   单例需要有能力为整个系统提供这一唯一实例  

     饿汉和懒汉单例

            1.饿汉式单例是指在方法调用前,实例就已经创建好了

                            

        2.  懒汉式单例是指在方法调用获取实例时才创建实例,因为相对饿汉式显得“不急迫”,所以被叫做“懒汉模式”

    3.使用静态内置类实现单例模式

    DCL解决了多线程并发下的线程安全问题,其实使用其他方式也可以达到同样的效果

     以上代码就是使用静态内置类实现了单例模式,这里将前面验证多线程下执行情况的MyThread类放入到org.mlinge.s06包下运行

    4.Double Check Locking 双检查锁机制

    为了达到线程安全,又能提高代码执行效率,我们这里可以采用DCL的双检查锁机制来完成

    5.序列化与反序列化的单例模式实现

        静态内部类虽然保证了单例在多线程并发下的线程安全性,但是在遇到序列化对象时,默认的方式运行得到的结果就是多例的。

          

    序列化与反序列化测试代码:

  • 相关阅读:
    注解
    LeedCode刷题:337.打家劫舍Ⅲ
    计蒜客:踏青(DFS)
    C++中memset()用法
    DFS深度优先搜索(附例题)
    计蒜客:网络交友:map+set+并查集
    JavaString类中valueOf和parseInt的区别
    Leedcode刷题 539. 最小时间差
    ps换衣服颜色
    hashmap的一些总结
  • 原文地址:https://www.cnblogs.com/xu06123/p/8511488.html
Copyright © 2011-2022 走看看