首页
hashmap为什么是线程不安全的
返回

hashmap为什么是线程不安全的

2022-12-20 数码极客 By:佚名
最佳答案演示机型:华为MateBook X 系统版本:win10 1、JDK1.7中,由于多线程对HashMap进行扩容,调用了HashMap,当某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等CPU资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数据丢失。2、JDK1.8 中,由于多线程对HashMap进行p...

演示机型:华为MateBook X    系统版本:win10    

1、JDK1.7中,由于多线程对HashMap进行扩容,调用了HashMap,当某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等CPU资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数据丢失。

2、JDK1.8 中,由于多线程对HashMap进行put操作,调用了HashMap,假设两个线程A、B都在进行put操作,并且hash函数计算出的插入下标是相同的,当线程A执行完第六行代码后由于时间片耗尽导致被挂起,而线程B得到时间片后在该下标处插入了元素,完成了正常的插入,然后线程A获得时间片,由于之前已经进行了hash碰撞的判断,所有此时不会再进行判断,而是直接进行插入,这就导致了线程B插入的数据被线程A覆盖了,从而线程不安全。

猜你喜欢
林云浩(关于林云浩的简介)

林云浩(关于林云浩的简介)

12-30 0 阅读
qqr26(qqr2)

qqr26(qqr2)

01-02 0 阅读
一人一花(关于一人一花的基本详情介绍)

一人一花(关于一人一花的基本详情介绍)

12-30 0 阅读
战地五装机

战地五装机

10-30 0 阅读
撒旦僵尸女(关于撒旦僵尸女的基本详情介绍)

撒旦僵尸女(关于撒旦僵尸女的基本详情介绍)

12-31 0 阅读
杨功明(关于杨功明的简介)

杨功明(关于杨功明的简介)

12-31 0 阅读
热门推荐
哑巴说话打一成语正确答案(哑巴说话打一成语)

哑巴说话打一成语正确答案(哑巴说话打一成语)

01-02 0 阅读
微信投诉警告教育处理是什么

微信投诉警告教育处理是什么

12-20 0 阅读
有机化学反应与有机材料研究(关于有机化学反应与有机材料研究的简介)

有机化学反应与有机材料研究(关于有机化学反应与有机材料研究的简介)

12-30 0 阅读
明永乐青花缠枝莲纹花卉罐(关于明永乐青花缠枝莲纹花卉罐的简介)

明永乐青花缠枝莲纹花卉罐(关于明永乐青花缠枝莲纹花卉罐的简介)

01-01 0 阅读
昭和マンガ风俗史―杉浦幸雄漫画でたどる五十年(关于昭和マンガ风俗史―杉浦幸雄漫画でたどる五十年的简介)

昭和マンガ风俗史―杉浦幸雄漫画でたどる五十年(关于昭和マンガ风俗史―杉浦幸雄漫画でたどる五十年的简介)

12-30 0 阅读
碧根果产地是哪里?(碧根果产地(碧根果产地在什么地方))

碧根果产地是哪里?(碧根果产地(碧根果产地在什么地方))

01-01 0 阅读
时间机器/插图英语世界名著系列丛书(关于时间机器/插图英语世界名著系列丛书的简介)

时间机器/插图英语世界名著系列丛书(关于时间机器/插图英语世界名著系列丛书的简介)

12-31 0 阅读
电脑qq怎么打卡

电脑qq怎么打卡

08-27 0 阅读
电视剧三十里铺(关于电视剧三十里铺的基本详情介绍)

电视剧三十里铺(关于电视剧三十里铺的基本详情介绍)

01-02 0 阅读
6199(关于6199的基本详情介绍)

6199(关于6199的基本详情介绍)

01-02 0 阅读