HashMap與ConcurrentHashMap的區別

    最近做的一個項目裏使用了多線程以及LinkedBlockingQueueh和LinkedBlockingDeque等類,在某線程裏有一個屬於線程實例的全局的HashMap,然後在run方法中會通過map的迭代器進行遍歷,然後會修改此Map的數據結構(即長度),然後發現會報ConcurrentModificationException的異常,如圖:

wKioL1cO_paAkqTHAAB1LPVcKP4281.png

然後將此Map的初始化對象從HashMap改成ConcurrentHashMap就不會遇到此異常。

ConcurrentHashMap可以支持向map中添加新元素,而HashMap則拋出了ConcurrentModificationException


具體原因可以參考鏈接:http://www.importnew.com/8162.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章