static void Main(string[] args) { //单线程 Singleton singleton = Singleton.GetSingleton(); singleton.Show(); //线程安全模式 SingletonThreadSafe singleton1 = SingletonThreadSafe.GetSingleton(); singleton1.Show(); }
/// <summary> /// 提供一个静态方法获取实例对象 /// </summary> /// <returns></returns> public static SingletonThreadSafe GetSingleton() { //双重检查 if (singleton == null) { lock (lockObj) { if (singleton == null) { singleton = new SingletonThreadSafe(); } } } return(singleton); }