Java ConcurrentHashMap 详解

本文深入探讨了并发编程中的HashMap与ConcurrentHashMap的区别,特别是后者如何通过只锁定key所在的段来提升并发性能。文章还详细介绍了ConcurrentHashMap支持的原子操作如putIfAbsent和replace,并通过链接提供了更深入的原理分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:概览
众所周知,hashmap 才用了按key 分段存储的方式,然而hashMap 使用synchronized 加锁的方式,就会锁住整个map
而转为并发设计的concurrentHashMap 却可以只锁住key 所在的段,大大提高了并发性能
还增加了的对常用符合操作的支持,puIfAbsent ,replace 等都是原子操作
类似的还有CopyOnWriteArrayList CopyOnWriteArraySet 分别代替list,和 set,进程并发操作
二:

http://www.cnblogs.com/dolphin0520/p/3932905.html
三:具体的实现原理
相当于建两个hash,具体原理代码分析,可以参考下面的链接,有空慢慢学
1:http://www.cnblogs.com/dolphin0520/p/3932905.html
2:http://ifeve.com/ConcurrentHashMap/
3:http://www.iteye.com/topic/344876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值