最高效但线程安全的列表/设置

Rog*_*gue 7 java concurrency list

Java有很多不同的集合,专为并发和线程安全而设计,我不知道哪一个可以选择适合我的情况.

多个线程可调用.add().remove(),我会喜欢的东西经常被复制此列表List<T> newList = new ArrayList<T>(concurrentList).我永远不会循环并发列表.

我想过类似的东西CopyOnWriteArrayList,但我读过它效率非常低,因为每次修改它都会自我复制.我希望在安全和效率之间找到一个很好的妥协.

这种情况的最佳清单(或集)是什么?

Zim*_*oot 1

您可能想了解ctrie是否适合您的用例 - 它具有线程安全addremove操作,并且“复制”(实际上是拍摄快照)数据结构的运行时间复杂度为 O(1)。我知道该数据结构有两种 JVM 实现:实现一实现二