摘抄自《改善C#程序的157个建议》 —— 建议105:使用私有构造函数强化单例。
关于单例的一个著名的技术就是“双锁定”技术。采用双锁定技术后,单例的线程安全版本为:
public sealed class Singleton { private static Singleton instance = null; static readonly object padlock=new object(); Singleton() {} public static Singleton Instance { get { if (instance==null) { lock (padlock) { if (instance==null) { instance=new Singleton(); } } } return instance; } } }
最后,要强调的一点是:单利应该同时是一个sealed类型。
原文:http://www.cnblogs.com/uncleJOKER/p/3835228.html