标签:使用 task 比较 blog lib generic cti gen new
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 : 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 : new() 25 { 26 private static readonly object sycLock = new object(); 27 private static T _instance; 28 public static T Current 29 { 30 get 31 { 32 if (_instance == null) 33 { 34 lock (sycLock) 35 { 36 if (_instance == null) 37 { 38 _instance = new T(); 39 } 40 } 41 } 42 return _instance; 43 } 44 } 45 } 46 } 47
标签:使用 task 比较 blog lib generic cti gen new
原文地址:http://www.cnblogs.com/yy1234/p/7298505.html