ConcurrentHashMap如何保证的线程安全?

书欣 Java面经 发布时间:2022-07-30 22:59:12 阅读数:7308 1
下文笔者讲述ConcurrentHashMap保证线程安全的方法分享,如下所示

ConcurrentHashMap线程安全的原理

JDK1.7中:
   使用分段锁
    将一个Map分16个段
     每个段都是一个小的hashmap
     每次操作只对其中一个段加锁

JDK1.8中:
    采用CAS+Synchronized保证线程安全
    每次插入数据时判断在当前数组下标是否是第一次插入
    是就通过CAS方式插入
      然后判断f.hash是否=-1
       true就说明其他线程正在进行扩容 
	     当前线程也会参与扩容;删除方法用了synchronized修饰
       保证并发下移除元素安全
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202207/16591932064077.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者