单例模式
1.单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
2.lock 语句的含义:lock是确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待,直到该对象被释放
例子:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 单例模式 { class Program { static void Main(string[] args) { Singleton s1 = Singleton.GetInstance(); Singleton s2 = Singleton.GetInstance(); if (s1 == s2) { Console.Write("Objects are the same instance"); } Console.ReadLine(); } } class Singleton { private static Singleton instance; private static readonly object syncRoot = new object(); /// <summary> /// 构造函数 /// </summary> private Singleton() { } public static Singleton GetInstance() { //双重锁定 if (instance == null) { lock (syncRoot) { if(instance==null) { instance = new Singleton(); } } } return instance; } } }
结果:
欢迎转载或分享,如果文章对你有帮助,请给予推荐,欢迎交流及关注!!!