【C#】C#中单例的双重锁定模式
来源:互联网 发布:cc域名多少钱一年 编辑:程序博客网 时间:2024/06/08 10:01
using System;using System.Collections.Generic;/// <summary>/// 适用于在多线程的情况下保证只有一个实例化对象的情况,例如银行的操作系统/// </summary>namespace DoubleLockInstance{//----------------------------------// 双重锁定单例public sealed class Singleton{// 定义一个类对象,用于内部实现private static Singleton myInstance;// readonly - 这个成员只能在“类初始化”时赋值 ,所谓的类初始化,就是直接在类里面初始化// 变量标记为 readonly,第一次引用类的成员时创建实例private static readonly object lockRoot = new object ();// 设置构造方法为私有,这样就不能在外部实例化类对象了private Singleton (){}// 实例化对象的方法public static Singleton GetInstance (){// 外部不能实例化对象,但是能调用类里面的静态方法// 外部需要调用这个方法来使用类对象,如果对象不存在就创建// 这里面使用两个判断是否为null的原因是,我们不需要每次都对实例化的语句进行加锁,只有当对象不存在的时候加锁就可以了if (myInstance == null) {// 锁定的作用就是为了保证当多线程同时执行这句代码的时候保证对象的唯一性// 锁定会让同时执行这段代码的线程排队执行// lock里面需要用一个已经存在的对象来判断,所以不能使用myInstancelock (lockRoot) {// 这里还需要一个判断的原因是,如果多线程都通过了外层的判断进行排队// 那将会实例化多个对象出来,所以这里还需要进行一次判断,保证线程的安全if (myInstance == null) {myInstance = new Singleton ();}}}return myInstance;}}}
0 0
- 【C#】C#中单例的双重锁定模式
- 单例模式 :双重锁定的探讨
- 单例模式的优化-双重锁定
- 双重检查锁定模式
- 双重检查锁定模式
- 双重检查锁定及单例模式 双重检查锁定失效的原因!!
- 广而告之-双重检查锁定模式
- 单列模式 双重检查锁定
- C++和双重检查锁定模式(DCLP)的风险
- C++和双重检查锁定模式(DCLP)的风险
- C++和双重检查锁定模式(DCLP)的风险
- 多线程中创建单例模式的双重锁定
- C++双重检查锁定模式(DCLP)的风险
- C++和双重检查锁定模式(DCLP)的风险
- 单例模式中的 双重检查锁定(Double-Check Locking ) (多线程下单例模式中的双重检查锁定的实现)
- 双重检查锁定及单例模式
- 双重检查锁定及单例模式
- 双重检查锁定及单例模式
- do your test before you deliver your code to community
- 重心和质心的区别
- 机器学习搞的杀毒引擎
- word wps 宏,剪切板内容保存文件 文件首行为文件名称
- 找出最长的连续数字串
- 【C#】C#中单例的双重锁定模式
- 二叉树遍历的非递归算法
- Ugly Number Ugly Number II
- Java知识总结----队列的使用(八)
- Linux中bc计算工具
- 从Zero学习String源码
- 用变量获得实体类中一个不确定名称的值
- 自定义窗口标题
- 版本管理之初接触