C#单例模式

2021-03-31 23:25

阅读:587

标签:模式   使用   eve   单例   单例模式   none   线程   bsp   onclick   

前言:单例模式是我们在软件开发中比较常用的模式之一,能很好的理解并运用对软件的性能是有很大的帮助的。

一、最简单的单例模式

 

技术分享图片技术分享图片
public class Singleton

{

          private static Singleton _instance = new Singleton();

          private Singleton() { }

          public static Singleton GetInstance() { return _instance; }

}
View Code

点评:该种实现,在程序一运行就将对象加载到内存,由于静态变量是常驻于内存不会被GC回收,故该实例化方式适用于经常使用的对象。对象一开始就被实例化了所以在多线程环境下是线程安全的。

 

二、双重锁单例模式

 

技术分享图片技术分享图片
    public class Singleton
    {
        private static object obj = new object();
        private static Singleton _singletion;
        private Singleton()
        { }

        public static Singleton Instance
        {
            get
            {
                if (_singletion == null)
                {
                    lock (obj)
                    {
                        if (_singletion == null)
                        {
                            _singletion = new Singleton();
                        }
                    }
                }
                return _singletion;
            }
        }
    }
View Code

点评:双重锁,保证了在多线程环境下对字典或集合的操作是安全的,使用于缓存的读取。

 

C#单例模式

标签:模式   使用   eve   单例   单例模式   none   线程   bsp   onclick   

原文地址:https://www.cnblogs.com/heweijian/p/5511688.html


评论


亲,登录后才可以留言!