gpt4 book ai didi

java - 最高效但线程安全的列表/集合

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

Java 有大量不同的 Collections 是为并发和线程安全而设计的,我不知道该选择哪一个来满足我的情况。

多个线程可能正在调用 .add().remove() , 我会经常用 List<T> newList = new ArrayList<T>(concurrentList) 之类的东西复制这个列表.我永远不会遍历并发列表。

我想到了类似 CopyOnWriteArrayList 的事情,但我读到它可能非常低效,因为它每次修改时都会复制自己。我希望在安全和效率之间找到一个好的折衷方案。

这种情况的最佳列表(或集合)是什么?

最佳答案

正如@SpiderPig 所说,List 的最佳情况是一个不可变的单链表。

但是,看看这里所做的事情,List 是不必要的(@bhspencer 的评论)。 ConcurrentSkipListSet 的工作效率最高 (@augray)。

This Related Thread已接受的答案提供了有关不同并发集合的优缺点的更多见解。

关于java - 最高效但线程安全的列表/集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30700388/

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