演示机型:华为 MateBook X系统:win10
1、 京东1.7 中,由于多线程对 哈希图 进行扩容,调用了 哈希映射 当某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等 中央处理器 资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数据丢失。
2、 JDK1.8型 中,由于多线程对 HashMap放操作、哈希映射、哈希技术A、B 函数计算出的插入下标是相同的,当线程 A类 执行完第六行代码后由于时间片耗尽导致被挂起,而线程 B类 得到时间片后在该下标处插入了元素,完成了正常的插入,然后线程 A类 获得时间片,由于之前已经进行了 搞砸 碰撞的判断,所有此时不会再进行判断,而是直接进行插入,这就导致了线程 B类 插入的数据被线程 A类 覆盖了,从而线程不安全。