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

猜你喜欢
岩巅大侠往事怎么触发

岩巅大侠往事怎么触发

08-24 0 阅读
邓平(关于邓平的基本详情介绍)

邓平(关于邓平的基本详情介绍)

12-31 0 阅读
新禾苗节(关于新禾苗节的简介)

新禾苗节(关于新禾苗节的简介)

01-01 0 阅读
现在哪家还能借出来?我要还小牛闪贷了,他家要上征信

现在哪家还能借出来?我要还小牛闪贷了,他家要上征信

11-01 0 阅读
生物质发电(关于生物质发电的基本详情介绍)

生物质发电(关于生物质发电的基本详情介绍)

12-30 0 阅读
景云楼(关于景云楼的简介)

景云楼(关于景云楼的简介)

12-31 0 阅读
热门推荐
湖南软件(关于湖南软件的基本详情介绍)

湖南软件(关于湖南软件的基本详情介绍)

12-30 0 阅读
茜(关于茜的基本详情介绍)

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

01-01 0 阅读
如果有人无缘无故打你,你会怎么办

如果有人无缘无故打你,你会怎么办

11-01 0 阅读
别克gl6后备箱开关在哪

别克gl6后备箱开关在哪

12-20 0 阅读
亢奋第二季浴缸是第几集

亢奋第二季浴缸是第几集

07-22 0 阅读
为什么飞机起飞要打开遮光板

为什么飞机起飞要打开遮光板

07-15 0 阅读
中东地理位置

中东地理位置

07-25 0 阅读
套环是什么东西

套环是什么东西

09-05 0 阅读
2018款丰田进口汽车有多少suv车行进入中国

2018款丰田进口汽车有多少suv车行进入中国

12-11 0 阅读
七星瓢虫会飞吗

七星瓢虫会飞吗

12-20 0 阅读