楼主的代码没有问题,所谓的双重锁定问题,是因为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) ,所以问题不大。
分享到:
相关推荐
NULL 博文链接:https://xieye.iteye.com/blog/540724
博文链接:https://eric2007.iteye.com/blog/158580
NULL 博文链接:https://houfeng0923.iteye.com/blog/1251682
NULL 博文链接:https://rednaxelafx.iteye.com/blog/479301
NULL 博文链接:https://cq-charlie.iteye.com/blog/1250485
Gutwirth和de Hert宣布保护隐私的数据保护。 隐私包含个性,自治,正直和尊严等概念。 这些价值受到使用个人数据的IT系统的影响。 数据保护法规旨在控制个人数据的使用,以保护上述基本价值。 因此,数据保护法规是...
" " " A、十六进制 " " " B、二进制 " " " C、八进制 " " " D、十进制 " " " " " " 你的答复: B ( ) 参考答案:B " " "2、在微型计算机系统中,微处理器又称为_________。 " " " A、RAM " " " B、ROM " " " C、...
支持所有Redis答复数据类型,包括部分支持访问简单(即,非嵌套)数组答复的组件。 Redis管道不受支持(并且不会被支持) 。 VMOD完全支持LUA脚本编制,它是原子执行和最小化延迟的管道的更灵活的替代方案。 管道...
访问表、答复函表格.doc
访问表·答复函表格.doc
该资料库包含一篇有关如何改变SpringerNature性质的社论,可从CC-BY开放获取化学信息期刊上看到。
关于个贷管理系统中存在问题的报告答复
Reply是一个电子邮件应用程序,使用Material Design组件和Material Theming来创建品牌交流体验。 该项目试图在中提供“的完美像素实现。 重点放在UI(动画,布局,过渡等)上,并应展示Flutter作为UI框架的功能。...
作为一个AI语言模型,我能够理解和回答许多问题,但是有些技巧可以帮助你更有效地与我交流,以获得最佳的答复: 简明扼要地表达你的问题:尽可能简明地表达你的问题,并使用清晰的语言和结构来传达你的意思。这样...
答复审查意见通知书通用格式 专利意见陈述书 回复格式: 尊敬的审查员先生/女士: 首先感谢您对本申请的认真审查。对于审查员的意见,申请人进行了认真的研读,(简述审查员的意见,表明同意或者不同意查员的...
项目组织协调_访问表·答复函表格.doc
选课问题收集-答复1
PSTN话务台相关问题答复 各种诡异常见问题以及故障排除
VB答复精选难得一见的源码,下载不会后悔的