标签:get logs 多线程 lock 没有 方式 单例对象 解决 static
单例模式,解决在使用对象实例时每次都需要声明的麻烦,其声明方式如下:
1 /// <summary> 2 /// 实例对象 3 /// </summary> 4 public class Singleton 5 { 6 static Singleton _install = null; 7 8 //声明一个静态对象,解决多线程同时调用单例对象 9 private static object lockObj = new object(); 10 11 /// <summary> 12 /// 构造函数声明为私有的,防止外部对象通过构造函数声明对象实例 13 /// </summary> 14 private Singleton() { } 15 16 /// <summary> 17 /// 单例对象实例 18 /// </summary> 19 public static Singleton Install 20 { 21 get 22 { 23 //判断单例对象是否被声明 24 if(_install==null) 25 { 26 //如果没有被声明则加锁声明实例对象,加锁防止多线程同时调用 27 lock(lockObj) 28 { 29 //再次判断是否已被声明,若没有则声明实例 30 if (_install == null) 31 _install = new Singleton(); 32 } 33 } 34 35 return _install; 36 } 37 } 38 }
标签:get logs 多线程 lock 没有 方式 单例对象 解决 static
原文地址:http://www.cnblogs.com/chaselz/p/6498040.html