码迷,mamicode.com
首页 > Web开发 > 详细

单例模式MVC

时间:2017-11-07 19:56:39      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:names   cti   多个实例   collect   namespace   tin   enc   read   lock   

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SingleLeton
{
public class SingleLeton
{
//声明一个静态的变量用于存储实体
//3.为了保存创建的实例定义一个静态的变量来保存的实例
private static SingleLeton _instance = null;

/// <summary>
/// 4.创建一个对象,用于枷锁,防止多线程创建多个实例
/// </summary>
private static object locker = new object();

/// <summary>
/// 1.私有的构造函数,杜绝了用户直接New来获取对象实例(防止用户随便New 为的就是这个主题单例模式,不然的话 就不是单例的可能是都可以访问的那种)
/// </summary>
private SingleLeton()
{

}

/// <summary>
/// 2.定义了静态的公共方法用于获取实例对象
/// 提供一个实例访问入口
/// </summary>
/// <returns></returns>
public static SingleLeton GetIntence()
{
//如果_instance==null才进行加锁
if (_instance == null)
{


//第一个线程进来,就把这片区域锁住,其他的线程进不来,等当前线程完成后其他线程才可以进场
lock (locker)
{
if (_instance == null)
{
//因为在同一个类可以访问私有的 故可以New
_instance = new SingleLeton();
}
}
}
return _instance;
}
}
}

单例模式MVC

标签:names   cti   多个实例   collect   namespace   tin   enc   read   lock   

原文地址:http://www.cnblogs.com/yaodengfeng/p/7800369.html

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