ConcurrentHashMap的优势与使用情况

来自权威书籍:Java并发编程实战;

同步容器类在执行每个操作期间都持有一个锁。于HashMap不同,ConcurrentHashMap用了不同的枷锁策越来提供更高的并发性和伸缩性。

ConcurrentHashMap并不是将每个方法都在同一个锁上同步,并使得每次只能有一个线程访问容器,而是用一种粒度更小的枷锁机制来实现更大程度的共享,

这种机制成为分段锁(Lock Striping)。在这种机制中,任意数量的读取线程可以并发的访问Map,执行读取操作的线程和执行写入操作的线程可以并发的访问Map,

并且一定数量的写入线程可以并发的修改Map。ConcurrentHashMap带来的记过是:在并发访问环境下将实现更高的吞吐量,而在单线程环境中值损失非常小的性能。

总结:与Hashtable和synchronizedMap相比,有更多的优势和更少的劣势,只有当应用程序需要枷锁Map进行独占的访问的时候,才应该放弃使用ConcurrentHashMap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值