您的位置:首页 > 其它

ConcurrentHashMap的优势与使用情况

2016-06-17 17:16 302 查看
来自权威书籍:Java并发编程实战;

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

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

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

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

总结:与Hashtable和synchronizedMap相比,有更多的优势和更少的劣势,只有当应用程序需要枷锁Map进行独占的访问的时候,才应该放弃使用ConcurrentHashMap
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ConcurrentHashMap