hashmap为什么是线程不安全的
来源:趣知咖 本文已影响1.14W人
来源:趣知咖 本文已影响1.14W人
1、JDK1.7中,由于多线程对HashMap进行扩容,调用了HashMap,当某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等CPU资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数据丢失。
2、JDK1.8 中,由于多线程对HashMap进行put操作,调用了HashMap,假设两个线程A、B都在进行put操作,并且hash函数计算出的插入下标是相同的,当线程A执行完第六行代码后由于时间片耗尽导致被挂起,而线程B得到时间片后在该下标处插入了元素,完成了正常的插入,然后线程A获得时间片,由于之前已经进行了hash碰撞的判断,所有此时不会再进行判断,而是直接进行插入,这就导致了线程B插入的数据被线程A覆盖了,从而线程不安全。
安全线是什么中的防伪特征
安全生产过程中的三违是什么
dnf安全模式为什么解不开
安全红线意识是什么意思
为什么360安全卫士打不开
hashmap底层原理
高铁为什么没有安全带 坐高铁为什么不用系安全带
安全工程专业是什么
线程安全与线程不安全
线程是什么 线程简述
安全线是什么中的防伪技术
安全生产红线是指什么
安全行为的定义是什么
不安全行为产生的三种原因是什么
为什么我的手机不能安全弹出
安全裤为什么不能贴身穿
进程和线程的区别 进程和线程有什么不同
耕地生命线安全线和什么线
安全生产三大规程是什么
国家安全以什么安全为基础
安全生产一线三排是什么
安全期不带安全套真的安全吗
不安全行为分为几类
国家生态安全的底线和红线是什么
为什么老是担心坐飞机不安全
安卓的后台程序为什么关不掉