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

猜你喜欢
秋天的歌曲十大排名(秋天的歌)

秋天的歌曲十大排名(秋天的歌)

01-04 0 阅读
兵马俑的由来

兵马俑的由来

12-20 0 阅读
白鹿个人资料(关于白鹿个人资料的基本详情介绍)

白鹿个人资料(关于白鹿个人资料的基本详情介绍)

12-30 0 阅读
长春市第六中学(关于长春市第六中学的基本详情介绍)

长春市第六中学(关于长春市第六中学的基本详情介绍)

12-31 0 阅读
nba冠军(关于nba冠军的基本详情介绍)

nba冠军(关于nba冠军的基本详情介绍)

01-01 0 阅读
复韵母有多少个怎么读(复韵母有多少个)

复韵母有多少个怎么读(复韵母有多少个)

01-04 0 阅读
热门推荐
2009版qq下载安装(09版qq下载)

2009版qq下载安装(09版qq下载)

01-03 0 阅读
寓意好的微信名带来好运女(寓意好的微信名带来好运)

寓意好的微信名带来好运女(寓意好的微信名带来好运)

12-30 0 阅读
友谊地久天长(关于友谊地久天长的基本详情介绍)

友谊地久天长(关于友谊地久天长的基本详情介绍)

12-30 0 阅读
*** 次数:9999999 已用完请联系开发者***
世界十大禁片之不可撤销

*** 次数:9999999 已用完请联系开发者*** 世界十大禁片之不可撤销

01-22 0 阅读
有嘴没心(关于有嘴没心的简介)

有嘴没心(关于有嘴没心的简介)

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

夏天美(关于夏天美的基本详情介绍)

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

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

01-01 0 阅读
叫心爱的男人什么昵称好听(什么昵称好听)

叫心爱的男人什么昵称好听(什么昵称好听)

01-02 0 阅读
在线外教一对一(关于在线外教一对一的基本详情介绍)

在线外教一对一(关于在线外教一对一的基本详情介绍)

01-02 0 阅读
国家宝藏之觐天宝(关于国家宝藏之觐天宝的基本详情介绍)

国家宝藏之觐天宝(关于国家宝藏之觐天宝的基本详情介绍)

01-02 0 阅读