ConcurrentHashMap允許一邊遍歷一邊更新,而用HashMap則會報線程安全問題


ConcurrentHashMap線程安全的,允許一邊更新、一邊遍歷,也就是說在對象遍歷的時候,也可以進行remove,put操作,且遍歷的數據會隨着remove,put操作產出變化,而如果用HashMap則會報線程安全問題。

以下例子分別使用HashMap、ConcurrentHashMap、HashTable在遍歷的同時刪除,

 情況一、使用HashMap進行遍歷的同時刪除

HashMap不能一邊遍歷一邊更新,否則報異常ConcurrentModificationException

 情況二、使用ConcurrentHashMap進行遍歷的同時刪除

ConcurrentHashMap不存在該問題,輸出結果為0.

 情況三、使用HashTable進行遍歷的同時刪除

如果用性能較低的安全容器HashTable,也報異常ConcurrentModificationException

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM