最近在阅读ConcurrentHashMap和HashTable的对比的文章时,发现很多文章都这样写道:
当写者数量大于等于读者时,CHM的性能是低于Hashtable和synchronized Map的。因为当锁住了整个Map时,读操作要等待对同一部分执行写操作的线程结束。
以上描述让人十分不解?我们都知道ConcurrentHashMap是针对桶加锁的,即时在写多读少的场景性能也远远好于锁整个map的HashTable,为何会低于Hashtable? 还是我理解有问题?
最近在阅读ConcurrentHashMap和HashTable的对比的文章时,发现很多文章都这样写道:
当写者数量大于等于读者时,CHM的性能是低于Hashtable和synchronized Map的。因为当锁住了整个Map时,读操作要等待对同一部分执行写操作的线程结束。
以上描述让人十分不解?我们都知道ConcurrentHashMap是针对桶加锁的,即时在写多读少的场景性能也远远好于锁整个map的HashTable,为何会低于Hashtable? 还是我理解有问题?
我觉得是ConcurrentHashMap,因为两者的底层存储结构不同,所以导致其性能不同
https://www.cnblogs.com/java265/p/16217259.html