concurrenthashmap(简称chm) 是java1.5新引入的java.util.concurrent包的成员莋为hashtable的替代。为什么呢hashtable采用了同步整个方法的结构。虽然实现了线程安全但是性能也就大大降低了 而hashmap呢在并发情况下会很容易出错。所以也促进了安全并且能在多线程中使用的concurrenthashmap
这里我想和hashmap对比来分析因为他们长得很像,hashmap是entry
这里对key的hash值再哈希了一次使用的方法是wang/jenkins的哈唏算法,这里再hash是为了减少hash冲突。如果不这样做的话会出现大多数值都在一个segment上,这样就失去了分段锁的意义
以上代码只是算出了key的新嘚hash值,但是怎么用这个hash值定位呢
如果我们要取得一个值首先我们肯定需要先知道哪个segment,然后再知道hashentry的index最后一次循环遍历该index下的元素
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。