JDK1.7的HashMap死循環

爲什麼在JDK1.7多線程情況下會很容易出現HashMap死循環,這個還是要根據它採取的擴容策略來看,它的擴容策略是頭插法,因此會導致這樣的問題。在JDK1.8改進爲尾插法,但並不意味着尾插法能適應多線程併發的場景,我認爲其最主要的考慮就是頭插法在正常情況下是與原來鏈表順序相逆的,而尾插不會改變其順序。 第一階段:線程1和線程2同時開始擴容,但是線程1在執行完Entry<K,V> next = e
相關文章
相關標籤/搜索