2020年7月5日
HashMap 线程不安全的原因
一直说HashMap线程不安全,具体哪里不安全呢?
1.7中,扩容时候,由于采用的是头插法,链表会翻转,在多线程环境下,容易造成循环链表的情况,还有可能造成数据丢失。代码分析就不列举了,主要是transfer方法。可以参考:https://mp.weixin.qq.com/s/VtIpj-uuxFj5Bf6TmTJMTw
1.8改为了尾插法,但是多线程环境会有数据覆盖的问题,当然这个问题1.7也存在的。