文章插图
演示机型:华为MateBook X系统版本:win101、JDK1.7中,由于多线程对HashMap进行扩容,调用了HashMap,当某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等CPU资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数据丢失 。
【hashmap为什么是2的幂次 hashmap为什么是线程不安全的】2、JDK1.8 中,由于多线程对HashMap进行put操作,调用了HashMap,假设两个线程A、B都在进行put操作,并且hash函数计算出的插入下标是相同的,当线程A执行完第六行代码后由于时间片耗尽导致被挂起,而线程B得到时间片后在该下标处插入了元素,完成了正常的插入,然后线程A获得时间片,由于之前已经进行了hash碰撞的判断,所有此时不会再进行判断,而是直接进行插入,这就导致了线程B插入的数据被线程A覆盖了,从而线程不安全 。
- 全身哪里都痒是咋回事抓了后有一颗 全身哪里都痒是什么病 全身哪里都痒要怎么办
- 王者荣耀蓝色的小人是什么 王者荣耀蓝色的角标是什么
- 春节前扫尘是我国的传统节日蚂蚁森林 春节前扫尘是我国的传统节日蚂蚁
- erp聚水潭是什么 聚水潭是什么
- 石岩是哪里-石岩哪里可以换驾驶证
- 韩国电视剧十大排行榜,最火韩剧第一名是太阳
- 栓q是什么意思网络用语,是hakyou的中文谐音版本
- 银行保函怎么办理 什么是银行保函
- harmony OS是什么意思 os是什么意思 os是什么缩写
- 烟灰缸里别倒水是为什么 烟灰缸倒水什么梗