public class Singleton
{
private static Singleton _singleton; //定义一个实例
private static readonly object locks = new object(); //定义一个私有静态类,锁判断
private Singleton() //私有构造函数
{
}
public static Singleton GetSingleton() //获取实例的方法
{
if(_singleton == null) //第一次判断,如果不为空,直接返回之前的实例,避免每次都竞争
{
lock (locks) //加锁线程安全
{
if (_singleton == null) //第二次加锁,两个线程进入到这一步,防止生成两个类
_singleton = new Singleton();
}
}
return _singleton;
}
}