在 Java 中选择最佳并发列表 [已关闭]

2022-08-31 09:05:55

我的线程池具有固定数量的线程。这些线程需要频繁地写入读取共享列表。

那么,在这种情况下,软件包中的哪种数据结构(最好是列表,必须是无监视器的)是最好的呢?java.util.concurrent


答案 1

最好是List

一的实现是CopyOnWriteArrayList。正如Travis Webb所提到的,还有同步列表的选项。Listjava.util.concurrent

也就是说,您确定需要它成为吗?并发 s 和 s 有更多的选项(你可以从 s 中生成 s),这些结构对于你想要使用共享数据结构执行的许多类型的事情往往是最有意义的。ListQueueMapSetMap

对于队列,您有大量的选项,哪个最合适取决于您需要如何使用它:


答案 2

任何Java集合都可以设置为线程安全,如下所示:

List newList = Collections.synchronizedList(oldList);

或者创建一个全新的线程安全列表:

List newList = Collections.synchronizedList(new ArrayList());

http://download.oracle.com/javase/6/docs/api/java/util/Collections.html#synchronizedList(java.util.List)


推荐