zoukankan      html  css  js  c++  java
  • 单例模式

    内容来源:大话设计模式

    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;

      }

    }

  • 相关阅读:
    Mariadb Galera Cluster 群集 安装部署
    RabbitMQ Cluster群集安装配置
    Glance 镜像服务群集
    Nova控制节点集群
    openstack集群环境准备
    http高可用+负载均衡 corosync + pacemaker + pcs
    cinder块存储控制节点
    cinder块存储 后端采用lvm、nfs安装配置
    web管理kvm ,安装webvirtmgr
    kvm虚拟机管理 系统自动化安装
  • 原文地址:https://www.cnblogs.com/YepQX/p/4296462.html
Copyright © 2011-2022 走看看