对于单例模式处理并发问题造成问题解决方法是:双重检查加锁

下面是Java和C#的写法

Java:

public class Singleton {  
   /**  
   * 对保存实例的变量添加volatile的修饰 
   */ 
   private volatile static Singleton instance = null;
   private Singleton(){}

public static  Singleton getInstance(){  
     //先检查实例是否存在,如果不存在才进入下面的同步块
     if(instance == null){  
             //同步块,线程安全的创建实例  
             synchronized(Singleton.class){  
                //再次检查实例是否存在,如果不存在才真的创建实例  
                 if(instance == null){  
                     instance = new Singleton();  
                 }  
             }  
         }  
         return instance;  
     }  
 }

C#:

public class Singleton 

  private static object SingletonLoker = new object();
  private static Singleton m_instance = null;

private Singleton() 
  { 
  }

public static Singleton getInstance() 
  { 
    if(m_instance==null) 
    { 
      lock(SingletonLoker)
      {
          if(m_instance==null) 
          { 
             m_instance=new Singleton(); 
          }
      }
    } 
    return m_instance; 
  } 
}

具体详情请参略:

http://www.cnblogs.com/sjms/archive/2010/08/30/1812303.html

http://topic.csdn.net/u/20090811/09/7e6ee289-631d-410f-afd8-0eccd79c82dc.html

单例模式 - 深究剖析相关推荐

  1. 主题:【转】单例模式完全剖析

    概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷.在本月的专栏中,David Geary探讨了单例模式以及在面对多线程(multithreading).类装载器(cl ...

  2. singleton 单例模式

    单例模式完全剖析 概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷.在本月的专栏中,David Geary探讨了单例模式以及在面对多线程(multithreading ...

  3. 看完这篇java单利模式文章,面试的时候再也不怕了

    来源:https://blog.csdn.net/weixin_44170221/article/details/106365623 哇塞,被称为Java中最简单的设计模式--单例设计模式.这都可以有 ...

  4. IT人形象(装笔)管理指南

    前言 形象管理并不是浅薄的装12+1,我将其视为文明职场的礼仪和规则. 日常鸭子划水暗使劲儿,即使内心焦躁表面依旧保持从容,保持这种礼仪是一层文明的安全阀门. 这是鸭子划水暗使劲的终极形态,逃跑都逃的 ...

  5. muduo源码剖析——Singleton单例模式之懒汉模式与DCL双重检查

    0 懒汉与饿汉 对于Singleton单例模式我们并不陌生,但我们常用的多是饿汉模式: Singleton实例的声明和实例化在instance()函数中同时完成. 而懒汉模式要求,Singleton实 ...

  6. java静态内部类单例模式_单例模式-静态内部类实现及原理剖析

    以我的经验为例(如有不对欢迎指正),在生产过程中,经常会遇到下面两种情况: 1.封装的某个类不包含具有具体业务含义的类成员变量,是对业务动作的封装,如MVC中的各层(HTTPRequest对象以Thr ...

  7. 【深究】对常驻进程问题再剖析

    工作中的难点问题正是我们知识技术栈全谱查漏补缺的最佳机遇,有问题不可怕,all in.死磕就完事了,哈哈哈~ 一 问题回顾 启动进程时,shm_attach()方法报错: failed for key ...

  8. RocketMQ入门到入土(四)producer生产消息源码剖析

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:从入门到入土(三)RocketMQ 怎么保证的消息不丢失? 篇幅 ...

  9. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

最新文章

  1. Confluence 6 生产环境备份策略
  2. python游戏编程入门电子书-请问自学 Python 有必要买课程吗?
  3. Leetcode 47. 全排列 II (每日一题 20211015)
  4. Selenium自动写公众号文章
  5. mysql 记录更新 内部_MySQL 入门(1):查询和更新的内部实现
  6. 从像素坐标到相机坐标_鱼眼相机模型EUCM(一)
  7. 虚拟机中加载物理机的硬盘和分区
  8. 从人工到自动,泛微云上自动化部署实践
  9. css鼠标移上去向上移动,css3鼠标移动图片上移效果
  10. 创造与魔法服务器多久维护一次,创造与魔法维护大概多久 | 手游网游页游攻略大全...
  11. 华为eNSP的基础入门实验
  12. 【软件定义汽车】SOA框架介绍
  13. fiddler连接代理手机无法上网问题解决办法
  14. Python+networkx 网络可视化方法
  15. 储存profiles是什么意思_save profile是什么意思
  16. ISO 14229、ISO 15765、ISO 11898的区别
  17. Cubby提供Dropbox 2倍推荐存储空间 各大云储存容量与价格PK
  18. 一寸等于多少厘米,一寸照片尺寸是多少?
  19. 2015年网页设计配色趋势预测
  20. SAP ABAP GUI_DOWNLOAD中下载乱码的问题

热门文章

  1. react进阶系列 - 高阶组件详解四:高阶组件的嵌套使用
  2. Python 生产者与消费者(一)
  3. 迁移数据文件到ASM【转】
  4. Yahoo网站性能优化的34条规则
  5. Windows Server 2008 R2 SP1遗忘管理员密码后的解决方案
  6. IE 无法点击文本框或输入文字
  7. [开学季]“当高校遇到大数据”濮阳职业技术学院阿里云大数据应用学院举行阿里云开学第一课...
  8. f5申请并激活License
  9. 打印html5中Canvas的方法
  10. spring核心框架体系结构(jar包依赖)