码迷,mamicode.com
首页 > Windows程序 > 详细

C#单例模式

时间:2018-06-30 23:38:56      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:模式   使用   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!