static void Main(string[] args) { for (int i = 0; i < 5; i++) { Task.Run(() => { var singleton1 = SingletonFirst.CreateInstance(); var singleton2 = SingletonSecond.CreateInstance(); }); } Console.ReadLine(); }
/// <summary> /// 静态构造函数: 由CLR保证, 程序第一次使用这个类型前被调用,且只调用一次 /// </summary> static SingletonSecond() { _singleton = new SingletonSecond(); }
static SingletonSecond()//CLR运行时候 第一次使用这个类之前,一定会而且只会执行一次 { Thread.Sleep(1000); Console.WriteLine("getInstance(): 第一次调用getInstance();线程编号{0}", Thread.CurrentThread.ManagedThreadId); instance = new SingletonSecond(); }