首页 > 图灵资讯 > java面试题>正文

java基础面试题-ConcurrentHashMap

2024-05-15 13:55:37

可以通过ConcurrentHashMap和Hashtable来实现线程安全;Hashtable 是原始API类,通过synchronize同步修饰,效率低下;ConcurrentHashMap通过分段锁实现,效率较比Hashtable要好。

 

ConcurrentHashMap的底层实现:

JDK1.7的ConcurrentHashMap底层采⽤ 分段的数组+链表 实现;采用 分段锁(Sagment) 对整个桶数组进⾏了分割分段(Segment默认16个),每⼀把锁只锁容器其中⼀部分数据,多线程访问容器⾥不同数据段的数据,就不会存在锁竞争,提⾼并发访问率。

JDK1.8的 ConcurrentHashMap采⽤的数据结构跟HashMap1.8的结构⼀样,数组+链表/红⿊树;摒弃了Segment的概念,⽽是直接⽤ Node 数组+链表+红⿊树的数据结构来实现,通过并发控制synchronized和CAS来操作保证线程的安全。

上一篇 java基础面试题-详细介绍HashMap
下一篇 java基础面试题-序列化和反序列化

文章素材均来源于网络,如有侵权,请联系管理员删除。