单例模式
作者:互联网
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace DesignPattern.CreationalPatern 8 { 9 //定义 1.只能创建一个实例 2.提供一个全局访问 10 11 public class SingletonPattern 12 { 13 private static SingletonPattern _singletonMode = null; 14 private static readonly object _objLock = new object(); 15 private SingletonPattern() { } 16 17 //双重锁定,防止多线程的资源浪费 18 public static SingletonPattern Instance() 19 { 20 //判断是否已有实例,避免重复执行加锁操作,会消耗CPU资源,涉及到线程上线文切换 21 if (_singletonMode != null) 22 { 23 //混合状态锁,锁对象一定要是用引用类型,因引用类型包含两个指针,TypeHandler和同步块索引(指向同步块实际意义上的锁) 24 //锁对象不能使用字符串,字符串具有驻留性,可能多个AppDomin都会用到 25 lock (_objLock) 26 { 27 if (_singletonMode != null) 28 { 29 _singletonMode = new SingletonPattern(); 30 } 31 } 32 } 33 34 return _singletonMode; 35 } 36 } 37 } 38
标签:singletonMode,System,模式,static,private,单例,using,SingletonPattern 来源: https://www.cnblogs.com/howiego/p/SingletonPattern.html