HashMap jdk1.7中擴容死循環(huán)假設兩個線程同時進行resize, A->B 第一線程在處理過程中比較慢,第二個線程已經(jīng)完成了倒序編程了B-A 那么就出現(xiàn)了循環(huán)B->A->B 數(shù)據(jù)重復如果有兩個線程同時發(fā)現(xiàn)自己都key不存在,而這兩個線程的key實際是相同的,在向鏈表中寫入的時候第一線程將e設置為了自己的Entry,而第二個線程執(zhí)行到了e.next,此時拿到的是最后一個節(jié)點,依然會將自己持有是數(shù)據(jù)插入到鏈表中,這樣就出現(xiàn)了數(shù)據(jù) 重復。 數(shù)據(jù)丟失如果有兩條線程同時執(zhí)行到這條語句table[i]=null,時兩個線程都會區(qū)創(chuàng)建Entry,這樣存入會出現(xiàn)數(shù)據(jù)丟失。