• 单例模式


    内容来源:大话设计模式

    1、单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    2、单例模式因为Singleton类封装了它的唯一实例,这样它可以严格地控制客户怎样访问它以及如何访问它。简单地说就是对唯一实例的受控访问。

    3、双重锁定:不让线程每次都加锁,而是在实例未被创建的时候再加锁处理。同时也能保证多线程的安全。

    class Singleton

    {

      private static Singleton instance;

      private static readonly object syncRoot  = new object();

      private Singletom(){}

      

      public static Singleton GetInstance()

      {

        if(instance == null)

        {

          lock(syncRoot)

          {

            if(instance == null)

            {

              instance = new Singleton();

            }

          }

        }

      }

    }

    4、 饿汉式单例类:静态初始化的方式是在自己被加载时就将自己实例化(提前占用系统资源)

      懒汉式单例类:要在自己第一次被引用时,才会将自己实例化(面临多线程的安全性问题,需要双重锁定才能保证其安全)

    饿汉式单例类:

    public sealed class Singleton  //阻止发生派生,而派生可能会增加实例

    {

      private static readonly Singleton instant = new Singleton;  //在第一次引用类的任何成员时创建实例。公共语言运行库负责处理初始化。

      private Singletonn(){}

      public Singleton GetInstance()

      {

        return instance;

      }

    }

  • 相关阅读:
    GD32E507移植FreeRTOS
    FreeRTOS学习笔记——任务基础知识
    FreeRTOS学习笔记——系统配置
    am335x WG209 wifi模块自动配置的脚本
    树莓派学习笔记——Systemd进程启动
    am335x WG209 wifi模块驱动移植
    树莓派学习笔记——搭建Samba服务端
    树莓派学习笔记——内核编译
    一个复制文件的Shell脚本
    Makefile学习笔记——Makefile通配符的使用
  • 原文地址:https://www.cnblogs.com/YepQX/p/4296462.html
Copyright © 2020-2023  润新知