本站首页    管理页面    写新日志    退出


«July 2018»
1234567
891011121314
15161718192021
22232425262728
293031


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9042821
建立时间:2004年12月20日




[java语言]ConcurrentHashMap也会引起死锁
原创空间,  文章收藏,  软件技术,  电脑与网络

邢红瑞 发表于 2010-5-29 21:40:13

ConcurrentHashMap一般情况下是线程安全的,但是也有引起死锁可能。在使用putAll时,频繁出现get数据时死锁。如果使用put或者putIfAbsent没有问题。怀疑putAll执行时会锁住整个map,然后迭代处理,这样处理的效率不是很高。看了看jdk6的实现,putAll已经是一个put的循环,不过这个putAll并不是atomic的。


阅读全文(10016) | 回复(2) | 编辑 | 精华
 


回复:ConcurrentHashMap也会引起死锁
原创空间,  文章收藏,  软件技术,  电脑与网络

sdf(游客)发表评论于2012-2-17 14:11:25


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:ConcurrentHashMap也会引起死锁
原创空间,  文章收藏,  软件技术,  电脑与网络

竹十一(游客)发表评论于2010-6-2 22:42:02

ConcurrentHashMap 的putAll,因为是对put 的循环,put是要上锁的,而get 其实在某些情况下调用readValueUnderLock,这个也是要上锁的。两者竞争可能出现死锁。 对ConcurrentHashMap 推荐使用的是putIfAbsent

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144063128 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号