数组 + 链表 + 红黑树,synchronized + CAS。Node的val和next都用volatile修饰,保证可见性。查找,替换,赋值操作都使用CAS。锁链表的head节点,不影响其他元素的读写,锁粒度更细,效率更高,扩容时,阻塞所有的读写 操作、并发扩容。读操作无锁,写操作使用乐观锁,乐观锁不能保证数据安全的情况下如数组扩容时使用synchronized。
第14题-ConcurrentHashMap
最新推荐文章于 2024-07-10 21:37:49 发布
数组 + 链表 + 红黑树,synchronized + CAS。Node的val和next都用volatile修饰,保证可见性。查找,替换,赋值操作都使用CAS。锁链表的head节点,不影响其他元素的读写,锁粒度更细,效率更高,扩容时,阻塞所有的读写 操作、并发扩容。读操作无锁,写操作使用乐观锁,乐观锁不能保证数据安全的情况下如数组扩容时使用synchronized。