首页
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覆盖了,从而线程不安全。

猜你喜欢
幼儿短小故事(幼儿简短小故事有哪些)

幼儿短小故事(幼儿简短小故事有哪些)

03-12 0 阅读
我想购买SWM这款车,没有居住证可以落户吗?

我想购买SWM这款车,没有居住证可以落户吗?

12-03 0 阅读
施平(关于施平的简介)

施平(关于施平的简介)

01-01 0 阅读
25L是50斤吗

25L是50斤吗

07-22 0 阅读
急需一副大门永久对联+用桂盛这两个字来做开头对联 麻烦懂的人写一下 谢谢

急需一副大门永久对联+用桂盛这两个字来做开头对联 麻烦懂的人写一下 谢谢

10-31 0 阅读
上海雷磁(关于上海雷磁的基本详情介绍)

上海雷磁(关于上海雷磁的基本详情介绍)

12-30 0 阅读
热门推荐
有子承祧诸事足(关于有子承祧诸事足的简介)

有子承祧诸事足(关于有子承祧诸事足的简介)

12-31 0 阅读
屋企汤馆(关于屋企汤馆的基本详情介绍)

屋企汤馆(关于屋企汤馆的基本详情介绍)

01-02 0 阅读
幼儿短小故事(幼儿简短小故事有哪些)

幼儿短小故事(幼儿简短小故事有哪些)

03-12 0 阅读
家校即时通(关于家校即时通的基本详情介绍)

家校即时通(关于家校即时通的基本详情介绍)

01-02 0 阅读
智能疏散(关于智能疏散的简介)

智能疏散(关于智能疏散的简介)

12-30 0 阅读
我想购买SWM这款车,没有居住证可以落户吗?

我想购买SWM这款车,没有居住证可以落户吗?

12-03 0 阅读
杭州为度品牌设计有限公司(关于杭州为度品牌设计有限公司的简介)

杭州为度品牌设计有限公司(关于杭州为度品牌设计有限公司的简介)

01-01 0 阅读
施平(关于施平的简介)

施平(关于施平的简介)

01-01 0 阅读
郑为文(关于郑为文的基本详情介绍)

郑为文(关于郑为文的基本详情介绍)

12-30 0 阅读
第二天的汉堡怎么热

第二天的汉堡怎么热

09-05 0 阅读