hashMap是非线程安全的,表现在两种情况下: 1 扩容: t1线程对map进行扩容,此时t2线程来读取数据,原本要读取位置为2的元素,扩容后此元素位置未必是2,则出现读取错误数据. 2 hash碰撞 两个线程添加元素发生hash碰撞,都要将此元素添加到链表的头部,则会发生数据被覆盖. 详情: HashMap底层是一个Node数组,一旦发生Hash冲突的的时候,HashMap采用拉链法解决碰撞冲突,Node结构: /** * Basic hash bin node, used for most…