日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

hashmap為什么是線程不安全的

【hashmap為什么是線程不安全的】

hashmap為什么是線程不安全的


演示機(jī)型:華為MateBook X
系統(tǒng)版本:win101、JDK1.7中,由于多線程對HashMap進(jìn)行擴(kuò)容,調(diào)用了HashMap,當(dāng)某個(gè)線程執(zhí)行過程中,被掛起,其他線程已經(jīng)完成數(shù)據(jù)遷移 , 等CPU資源釋放后被掛起的線程重新執(zhí)行之前的邏輯,數(shù)據(jù)已經(jīng)被改變,造成死循環(huán)、數(shù)據(jù)丟失 。
2、JDK1.8 中 , 由于多線程對HashMap進(jìn)行put操作,調(diào)用了HashMap,假設(shè)兩個(gè)線程A、B都在進(jìn)行put操作,并且hash函數(shù)計(jì)算出的插入下標(biāo)是相同的,當(dāng)線程A執(zhí)行完第六行代碼后由于時(shí)間片耗盡導(dǎo)致被掛起,而線程B得到時(shí)間片后在該下標(biāo)處插入了元素,完成了正常的插入 , 然后線程A獲得時(shí)間片,由于之前已經(jīng)進(jìn)行了hash碰撞的判斷,所有此時(shí)不會再進(jìn)行判斷,而是直接進(jìn)行插入,這就導(dǎo)致了線程B插入的數(shù)據(jù)被線程A覆蓋了 , 從而線程不安全 。

    推薦閱讀