为了账号安全,请及时绑定邮箱和手机立即绑定

关于线程安全的单例模式

关于线程安全的单例模式

繁星点点滴滴 2018-12-11 14:10:14
public class MyClass{        private MyClass() { }       //保证线程安全的延时加载单例        public static MyClass Instance        {            get { return Nested._Instance; }        }        private class Nested        {            static Nested() { }            internal static readonly MyClass _Instance = new MyClass();        }}最近看到一种单例模式的实现,但实在不理解为何是线程安全的,请各位大牛们赐教
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

线程安全是针对多个线程同时运行来说的,这段代码中是用静态变量来实现的,当程序加载时就只有一个实例存在于内存中

查看完整回答
反对 回复 2018-12-15
?
慕村225694

TA贡献1880条经验 获得超4个赞

这个用法主要是凸显延迟加载,只有当第一次调用Instance时才会实例化内联类里的单件,而且用的都是静态方法调用,多线程时也不会存在多次实例化的可能。STATIC实现单例是C#有特色的地方,由于内存中只会有一份实例,多个线程同时访问得到的是同一个_Instance实例。这种内联+静态的单例方法我还没用过喃,互相学习了

查看完整回答
反对 回复 2018-12-15
  • 2 回答
  • 0 关注
  • 685 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信