程序员社区

Java ConcurrentHashMap

一、为什么要使用ConcurrentHashMap

HashMap线程不安全,而Hashtable线程安全但效率低下,因为Hashtable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下Hashtable的效率非常低下。因为当一个线程访问Hashtable的同步方法时,其他线程访问Hashtable的同步方法时,可能会进入阻塞或轮询状态。如线程1使用put进行添加元素,线程2不但不能使用put方法添加元素,并且也不能使用get方法来获取元素,所以竞争越激烈效率越低。

二、ConcurrentHashMap实现

JDK1.8利用CAS+Synchronized来保证并发更新的安全。数据结构采用:数组+链表+红黑树。
在这里插入图片描述

三、源码分析

参考文章

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Java ConcurrentHashMap

一个分享Java & Python知识的社区