码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2017-08-07 13:34:47      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:使用   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!