zoukankan      html  css  js  c++  java
  • 单例模式及其调用

    最近做了一个关于单例模式类的实现及方法调用

    创建一个单例模式

     1     /// <summary>
     2     /// 单例模式:
     3     /// </summary>
     4     public class Singleton
     5     { 
     6         // 定义一个静态变量来保存类的实例
     7         public static Singleton Instance;
     8 
     9         // 定义一个标识确保线程同步
    10         private static readonly object locker = new object();
    11 
    12         // 定义私有构造函数,使外界不能创建该类实例
    13         private Singleton() {}
    14 
    15         /// <summary>
    16         /// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点
    17         /// </summary>
    18         /// <returns></returns>
    19         public static Singleton GetInstance()
    20         {
    21             // 当第一个线程运行到这里时,此时会对locker对象 "加锁",
    22             // 当第二个线程运行该方法时,首先检测到locker对象为"加锁"状态,该线程就会挂起等待第一个线程解锁
    23             // lock语句运行完之后(即线程运行完之后)会对该对象"解锁"
    24             // 双重锁定只需要一句判断就可以了
    25             if (Instance == null)
    26             {
    27                 lock (locker)
    28                 {
    29                     // 如果类的实例不存在则创建,否则直接返回
    30                     if (Instance == null)
    31                     {
    32                         Instance = new Singleton();
    33                     }
    34                 }
    35             }
    36             return Instance;
    37         }
    38 
    39         /// <summary>
    40         ///  
    41         /// </summary>
    42         private void InitLoad()
    43         {
    44 
    45             // 其他逻辑代码
    46         }
    47 
    48   }

    方法调用:

    Singleton.GetInstance().InitLoad();//单例模式:方法调用 
  • 相关阅读:
    罗马数字转整数-算法练习
    无重复字符的最长字串-算法练习
    亲密字符串-算法刷题笔记
    0-n-1中缺失的数字-算法总结笔记
    高度检查表-算法笔记总结
    链表删除中间结点-算法练习总结
    链表中的中间结点-算法练习总结
    链表相交-算法练习总结
    多数元素-算法笔记总结
    Consul Windows集群搭建ACL Token验证
  • 原文地址:https://www.cnblogs.com/ITyueguangyang/p/14463222.html
Copyright © 2011-2022 走看看