当前位置: 代码迷 >> 综合 >> 第14题-ConcurrentHashMap
  详细解决方案

第14题-ConcurrentHashMap

热度:53   发布时间:2023-12-03 22:58:36.0

数组 + 链表 + 红黑树,synchronized + CAS。Node的val和next都用volatile修饰,保证可见性。查找,替换,赋值操作都使用CAS。锁链表的head节点,不影响其他元素的读写,锁粒度更细,效率更高,扩容时,阻塞所有的读写 操作、并发扩容。读操作无锁,写操作使用乐观锁,乐观锁不能保证数据安全的情况下如数组扩容时使用synchronized。

  相关解决方案