Java ConcurrentHashMap分析

ConcurrentHashMap就是HashMap的线程安全版本号。值得一提的是,ConcurrentHashMap并没实用一个锁来保护整个哈希区。而是使用了16个锁,将哈希区分成了16个桶,每个锁控制一个桶,即锁分段,这样子能够更加细粒度的锁对象。所以最大提供16个并发的读写,来提高吞吐量。



可是这样的技术也带来了不好的地方,比方有些方法须要扫描这个哈希区,如size()方法或者是containsValue()方法,这样子将使用多个锁而不是一个锁来实现。而当须要多把锁的时候,就须要某些技术。如按顺序上锁来避免死锁。

原文:http://blog.csdn.net/hongchangfirst/article/details/39667989

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst



原文地址:https://www.cnblogs.com/brucemengbm/p/7278042.html