因为在多线程中会出现死循环的情况,就是有两个线程,在同时运行,线程A在给hashmap进行 resize操作
线程B在进行add操作添加b进来,如果是头插法, 在resize中,原本的最后一个元素A会重新放入到这个table数组中,在线程B准备插入一个数据B进来,
本来理想的情况是如下,
但是如果在Aresize重新hash的时候add了b 可能会产生如下的情况
讲不清楚,具体看了源码yy一下就能懂
然而尾插法就不会有这种情况,虽然说hashmap是线程不安全的,不建议在线程中使用
(线程中使用currenthashmap)
维护人员还是改了这个情况