`
wyuch
  • 浏览: 74318 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

答复: 关于同步访问,双重检查问题

 
阅读更多
楼主的代码没有问题,所谓的双重锁定问题,是因为JAVA内存模型的无序写入缺陷导致的,在一部分JVM上存在这样的情况:

public static Singleton getInstance()
 {
   if (instance == null)
   {
     synchronized(Singleton.class) {  //1
       if (instance == null)          //2
         instance = new Singleton();  //3
     }
   }
   return instance;
 }
 


上述代码可能会导致双重锁定失败。这是因为在//3处,在部分JVM中,instance会在new Singleton()执行之前就被置为非null了,从而导致双重锁定失败。具体请参见
http://www.ibm.com/developerworks/cn/java/j-dcl.html

但在你的例子中,没有类似静态变量instance的东西,resource是从map中取出来的,不存在无序写入的问题,不可能会锁定失败。

至于性能,因为大部分调用不会进入第一个 if (resource == null) ,所以问题不大。
分享到:
评论

相关推荐

    答复: 一道经典线程面试题的4种解法

    标题中的“答复: 一道经典线程面试题的4种解法”暗示了这是一个关于多线程编程的问题,通常在面试中出现,用于评估候选人的并发处理能力。在这个问题中,可能涉及到同步、线程安全、锁机制等关键概念。 在Java中,...

    答复: PHP验证框

    - 错误处理:优雅地处理错误,提供清晰的错误信息,有助于用户理解问题并修复。 7. **标签“源码”和“工具”** - 源码:可能指的是提供验证功能的PHP代码示例,帮助开发者理解并应用到自己的项目中。 - 工具:...

    答复: 通过代码简单介绍JDK 7的MethodHandle,并与.NET的委托对比(二)

    标题中的“答复: 通过代码简单介绍JDK 7的MethodHandle,并与.NET的委托对比(二)”表明本文将深入探讨Java中的MethodHandle概念,并将其与.NET平台上的委托进行对比。MethodHandle是JDK 7引入的一个强大特性,它...

    三年级英语暑假作业之句子改写练习.doc

    - 肯定答复与否认答复:对一般疑问句的回答,肯定答复用“Yes, + 主语 + 助动词/情态动词。”,否定答复用“No, + 主语 + 助动词/情态动词 + not。” 2. 具体题目解答: - 1. It is fun at school. 否认句:It is...

    答复: 喜欢和使用Portal的朋友请进!

    博文链接:https://eric2007.iteye.com/blog/158580

    访问表、答复函表格.doc

    在企业管理中,访问表和答复函表格是两个重要的工具,它们在信息交流、问题解决以及决策支持方面扮演着关键角色。下面将详细解释这两个概念及其在实际操作中的应用。 访问表,通常用于企业内部或外部的调查、评估或...

    访问表·答复函表格.doc

    通过使用这样的访问表和答复函表格,IT团队能够有效地管理日常的工作流程,提高问题解决的效率,同时保证所有通信都有记录,方便后期的查询和审计。这种文档化的工作方式也符合ITIL(Information Technology ...

    项目组织协调_访问表·答复函表格.doc

    此文档“项目组织协调_访问表·答复函表格.doc”是企业管理中的一个实用工具,用于规范和高效地处理项目中的信息交流和问题解决。 访问表与答复函表格的设计体现了企业管理中的标准化流程,它主要由以下几个部分...

    答复:答复“通向开放未来的捷径”

    标题中的“答复:答复‘通向开放未来的捷径’”暗示了这是一篇对某个讨论或议题的回应,特别是关于开放科学和知识发布的路径。在描述中提到的SpringerNature是一家知名的学术出版机构,它涉及的社论可能讨论了如何在...

    libvmod-redis:使用同步hiredis库API的VMOD从VCL访问Redis服务器

    支持所有Redis答复数据类型,包括部分支持访问简单(即,非嵌套)数组答复的组件。 Redis管道不受支持(并且不会被支持) 。 VMOD完全支持LUA脚本编制,它是原子执行和最小化延迟的管道的更灵活的替代方案。 管道...

    交通行政复议答复意见书.pdf

    交通行政复议答复意见书是行政复议程序中被申请人(通常是交通行政机关)对申请人提出的行政复议申请进行回应的法律文件。以下是该文件涉及的主要知识点: 1. 行政复议制度:行政复议是公民、法人或其他组织对行政...

    英语句型转换常规基本句式的转换方法.doc

    肯定答复:Yes, there are. 否定答复:No, there aren't. 对于情态动词,如can,否定形式是在其后加"not",一般疑问句则将其提前到句首。例如: 2. 肯定句:Li Ming's father can drive the car. 否定句:Li ...

    OA答复原则及策略(PPT85页).ppt

    - **分析对比文件**:代理人在答复时需深入分析对比文件,判断审查员关于新颖性和创造性的评价是否合理,以此决定反驳策略。 OA答复的策略应根据审查意见的类型和对比文件的分析结果制定: - **有授权前景**:...

    VB答复精选的软件源码

    通过这些精选的答复,开发者可以迅速找到对应问题的解答,提高问题解决效率。 "VB源码"标签则明确了这是一个以源代码为主导的学习资源,它提供了实际可运行的代码示例,使得学习者能够通过观察和修改代码来深化理解...

    专利审查中如何答复0A

    专利审查流程中,审查意见通知书(OA,Office Action)是审查员向专利申请人发出的关于专利申请实质审查结果的正式通知。理解并妥善答复审查意见通知书对于专利申请的成功至关重要。下面详细阐述在答复审查意见通知...

    局域网中无法访问的解决方法集锦

    以下是解决局域网中无法访问问题的方法集锦: 一、检查计算机之间的物理连接 在局域网中,计算机之间的物理连接是非常重要的。首先,检查网卡是否正常工作,网卡后面的指示灯应该是亮的。如果不亮,请检查集线器或...

    冀教版小学英语四年级上册英语重要知识点.doc

    - 答复:`These are...`:这些是... - `What are they?`:它们是什么? - 答复:`They are...`:它们是... 4. **形容词及反义词**: - `new`:新的 - `old`:旧的 - `tall`:高的 - `short`:矮的 - `long`...

    关于个贷管理系统中存在问题的报告答复.doc

    关于个贷管理系统中存在问题的报告答复

Global site tag (gtag.js) - Google Analytics