class God
{
private static God instance = null;
private static object locker = new object();
private God(){} //构造函数私有
public static God GetInstance()
{
if(instance == null)
{
/*此时可能会有别的线程去创建对象*/
lock(locker)
{
if(instance == null) //这里再次判断
instance = new God();
}
}
return instance;
}
}
本文详细探讨了单例模式在多线程环境下的实现方式,通过C#代码示例展示了如何确保实例的唯一性和线程安全性。介绍了使用锁(lock)进行同步的方法,以及双重检查锁定模式(Double-Checked Locking)来优化性能。
799

被折叠的 条评论
为什么被折叠?



