1. 首页
  2. 编程语言
  3. Java
  4. JDK1.8中的ConcurrentHashMap使用及场景分析

JDK1.8中的ConcurrentHashMap使用及场景分析

上传者: 2021-05-25 03:42:37上传 PDF文件 440.77 KB 热度 12次

  ConcurrentHashMap 和 HashMap 的实现原理是差不多的,但是因为 ConcurrentHashMap需要支持并发操作,所以在实现上要比 hashmap 稍微复杂一些。在 JDK1.7 的实现上, ConrruentHashMap 由一个个 Segment 组成,简单来说,ConcurrentHashMap 是一个 Segment 数组,它通过继承 ReentrantLock 来进行加锁,通过每次锁住一个 segment来保证每个 segment内的操作的线程安全性从而实现全局线程安全。相比于 1.7 版本,它做了两个改进取消了 segment 分段设计,直接使用 Node 数组来保存数据,并且采用 Node 数组元素作为锁来实现每一行数据进行加锁来进一步减少并发冲突的概率将原本数组+单向链表的数据结构变更为了数组+单向链表+红黑树的结构。

用户评论