迟缓初始化 为什么要判断 两次是否为null RT 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就算是判断两次在跨JVM的情况下还可能出现问题。 迟缓初始化 为什么要判断 两次是否为null ?什么问题啊?难道是懒汉式单例模式?你分析一下是初次请求和以后多次请求的问题,这样可以提高效率! 这个不安全,一般不用就好。给你找了一个讲Double-checked locking,内容很多,我没看,你好好品味吧http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html 简单说吧如果A不等于空,那么准备获得锁,但此时有可能另外一个线程也在做这个操作,而且他先获得了锁。另一个线程更新了A数据,此时不再为空了。并释放了锁。这个线程终于获得了锁,但此时A已经不是空了。如果你不判断你获得锁只有,A是否还是为空,那么就会再次初始化A。 老大一解释,立马懂了,关键在 第一次判断是否为null之后,准备获得锁 这个时间段中间,有可能其他线程利用这段时间已经完成一次初始化 map里的values可不可以直接转化成list啊? 关于applet与javascript交互的问题 提问:GUI程序的JAVA代码(swing)导入到Netbean中,能编译运行,但无法得到该GUI的可视化图形编辑界面。 java post的问题(手机炸弹) 关于输入输出流的一个小问题 java解析XML的问题,进来留言都有分,分不够再加 在局域网中,如何通过代理访问smtp服务器,急急急 咨询点概念问题,不知道该怎么入手查?程序关闭,和界面关闭,和线程退出 关于jbuilder7的问题 tomcat配置问题 用Runnable实现多线程间的资源共享时遇到的问题~~ java绘图问题
?什么问题啊?
难道是懒汉式单例模式?
你分析一下是初次请求和以后多次请求的问题,这样可以提高效率!
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
但此时有可能另外一个线程也在做这个操作,而且他先获得了锁。
另一个线程更新了A数据,此时不再为空了。并释放了锁。
这个线程终于获得了锁,但此时A已经不是空了。如果你不判断你获得锁只有,A是否还是为空,那么就会再次初始化A。
老大一解释,立马懂了,关键在 第一次判断是否为null之后,准备获得锁 这个时间段中间,有可能其他线程利用这段时间已经完成一次初始化