gpt4 book ai didi

java - 在这种情况下,正确的 Java 集合是什么?

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

我需要在列表或集合中保存大量元素(500k 左右)我需要进行高性能遍历、添加和删除。这将在多线程环境中完成,我不在乎我是否能在遍历开始后看到完成的更新(弱一致性),哪种 Java 集合适合这种情况?

最佳答案

I need to hold a large number of elements (500k or so) in a list or a set I need to do high performance traversal, addition and removal. ... This will be done in a multithreaded environment


ConcrrentSkipListMap - 它不是列表,但列表语义在并发环境中几乎没有用。它会将元素按树状结构排序,并且无法通过哈希访问,因此您需要一些自然排序(或通过比较器进行外部排序)

如果您只需要在队列的末尾添加/删除 - ConcurrentLinkedQueue

同步集合不适合多线程环境,如果你期望适度的争用。在整个横移操作期间,它们也需要完全锁定。我也建议不要使用 ConcurrentHashMap。

最后:如果您想要像 64+ 这样的真正的多 CPU,并且期望高竞争并且不希望自然排序,请访问以下链接:http://sourceforge.net/projects/high-scale-lib

关于java - 在这种情况下,正确的 Java 集合是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4849935/

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