关于线程安全的单例模式

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();

        }


}

最近看到一种单例模式的实现,但实在不理解为何是线程安全的,请各位大牛们赐教

繁星点点滴滴
浏览 692回答 2
2回答

互换的青春

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

慕村225694

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