zoukankan      html  css  js  c++  java
  • 单例

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace CLibrary.ConsoleApp.Core
     8 {
     9     /// <summary>       
    10     /// 饿汉模式(推荐使用):在类创建时已经将实例加载到内存,天生线程安全,第一次调用比较快。
    11     /// </summary>
    12     /// <typeparam name="T"></typeparam>
    13     public class Singleton_EHan<T> where T : class, new()
    14     {
    15         //饿汉式是线程安全的,因为虚拟机保证只会装载一次,在装载类的时候是不会发生并发的。
    16         private static readonly T _instance = new T();
    17         public static T Current { get { return _instance; } }
    18     }
    19 
    20     /// <summary>
    21     /// 懒汉模式:双重锁保证线程安全,第一次调用较慢。
    22     /// </summary>
    23     /// <typeparam name="T"></typeparam>
    24     public class Singleton_LanHan<T> where T : class, new()
    25     {
    26         private static readonly object sycLock = new object();
    27         //不允许线程进行本地缓存,每个线程的读写都是直接操作在共享内存上,这就保证了变量始终具有一致性。缺点很明显:牺牲了效率,
    28         //但是多核CPU情况下线程不安全。
    29         private static volatile T _instance;
    30         public static T Current
    31         {
    32             get
    33             {
    34                 if (_instance == null)
    35                 {
    36                     lock (sycLock)
    37                     {
    38                         if (_instance == null)
    39                         {
    40                             _instance = new T();
    41                         }
    42                     }
    43                 }
    44                 return _instance;
    45             }
    46         }
    47     }
    48 }
  • 相关阅读:
    贪心法
    div 样式
    echarts标题(title)配置
    利用svg画路径图 vue
    vue 杂项
    Charset 0x0408D00000/MS936 is not supported by the JVM
    Android开发中Eclipse常用快捷键
    Java 中强制删除文件的方法
    利用html5的localStorage结合jquery实现日常费用查询器
    Ant编译utf8非法字符:/65279 解决方法
  • 原文地址:https://www.cnblogs.com/yy1234/p/7298505.html
Copyright © 2011-2022 走看看