美文网首页
ConcurrentHashMap 在Java7和Java8中的

ConcurrentHashMap 在Java7和Java8中的

作者: MaTae | 来源:发表于2020-04-01 09:53 被阅读0次

    Java7中ConcurrentHashMap使用的就是锁分段技术,ConcurrentHashMap由多个Segment组成(Segment下包含很多Node,也就是我们的键值对了),每个Segment都有把锁来实现线程安全,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。

    Java8中的锁的粒度比Java7中更细了,Java8锁住的一个某一个数组元素table[i](头节点,该头结点类型是链表头结点或红黑树的头结点),而Java7中segment锁住的是一个HashEntry数组,相当于锁住了多个数组元素;所以我感觉Java8中ConcurrentHashMap多线程环境下 put效率更高。

    相关文章

      网友评论

          本文标题:ConcurrentHashMap 在Java7和Java8中的

          本文链接:https://www.haomeiwen.com/subject/sacguhtx.html