gpt4 book ai didi

java - ConcurrentHashMap 返回一个弱一致性迭代器,我们为什么要使用它呢?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:08:45 24 4
gpt4 key购买 nike

我正在阅读 Java Concurrecny in practice 这本书。在第 85 页的第 5.2.1 节中,它讨论了 ConcurrentHashMap 及其优点。然而,一方面,这些书声称

the iterators returned by ConcurrentHashMap is weakly consistent. This means that this iterator can tolerate concurrent modification, traverses elements as they existed when iterator was constructed, and may (but not guaranteed to) reflect modifications to the collection after the construction of the iterator.

从我的理解来看,并发程序中同步的全部意义在于允许线程以一致的方式访问共享资源,而 ConcurrentHashMap 并没有真正实现这一点。那为什么要使用它呢?

最佳答案

重点是在不需要时避免同步。如果您不介意在某些情况下看到新元素而在其他情况下看不到新元素,使用 ConcurrentHashMap 的迭代器比阻止其他线程添加项目要便宜得多当您迭代时在创建迭代器时拍摄一致的快照。

所以是的,当您需要同步和一致的迭代器时,您将需要一个替代方案 - 但当您不需要时,您可以利用 ConcurrentHashMap 提供的更高效的迭代器。

关于java - ConcurrentHashMap 返回一个弱一致性迭代器,我们为什么要使用它呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14084104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com