//双if + lock 实现线程安全的单例模式
class Singleton
{
private Singleton() { }
private static Singleton _singleton = null;
private static object _lock = new object();
public static Singleton CreateSingleton()
{
if(_singleton == null)
{
Console.WriteLine("路过。。");
lock(_lock)
{
if(_singleton == null)
{
Console.WriteLine("被创建。。");
_singleton = new Singleton();
Thread.Sleep(3000);
}
}
}
return _singleton;
}
}
//利用静态只读变量实现单例模式
class Singleton2
{
private Singleton2() { }
private static readonly Singleton2 _singleton2 = new Singleton2();
public static Singleton2 CreateSingleton2
{
get { return _singleton2; }
}
}
单例模式
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模...
- spring单例bean与设计模式的单例模式的区别在于它们关联的环境不一样。单例模式是指在一个JVM进程中仅有一个...
- 定义:一个类只有一个实例,即使多次实例化该类,也只会返回第一次实例化后的对象。 使用闭包改进后的写法 单例模式用途...
- 介绍: 单例模式是一种创建型模式。它保证一个类仅有一个实例,并提供一个访问它的全局访问点。 类图: Singlet...
- 单例模式的特点: 1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供...