簡體   English   中英

ConcurrentHashMap中的失敗安全迭代器

[英]fail safe iterator in ConcurrentHashMap

CopyOnWriteArrayListConcurrentHashMap中的迭代器都是故障安全的,不會拋出CME。

IN CopyOnWriteArrayList<E>迭代器建立在原始基礎數組的快照上。 因此,這里的迭代器是故障安全的 ,也是線程安全的。

用於CopyOnWriteArrayList<E> Javadcos清楚地說明了術語快照

“快照”樣式的迭代器方法在創建迭代器時使用對數組狀態的引用。 此數組在迭代器的生命周期內永不更改,因此不可能發生干擾,並且保證迭代器不會引發ConcurrentModificationException。

ConcurrentHashMap迭代器的情況下,是否也建立在原始基礎地圖的快照上?

謝謝...

不一定-cf javadoc(強調我的)

類似地,迭代器和枚舉返回的元素反映了在創建迭代器/枚舉時或之后的某個時刻哈希表的狀態。

如果查看valuesentrySetkeySet方法:

視圖的迭代器保證遍歷迭代器構造時存在的元素,並且可以(但不保證)反映構造之后的任何修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM