有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java多线程场景中的多线程列表更新

我有一个场景,在这个场景中,我需要对一个非常大的列表(比如9000多个)条目进行一些处理,然后将处理后的条目添加到一个新列表中。为此,我采用多线程方法

以下两种方法中,哪一种更有效:

  1. 我应该为每个线程提供单独的列表对象,然后将所有线程的结果添加到一个最终列表中
  2. 我应该使用一个同步列表,并允许所有线程同时添加到此列表

共 (1) 个答案

  1. # 1 楼答案

    为什么你认为线程是一种解决方案,你没有列出并发解决的问题

    在宏大的计划中,9000个条目并没有太多需要处理的事情。如果你说,有900万条条目,每个条目需要10秒来处理,那可能是另一回事

    除非处理每一件事情都需要很长的时间(相对而言),而且不受CPU限制(比如等待远程机器做某事),否则我想说,在这种情况下,多线程只会给你带来不必要的复杂性

    即使处理时间很长,线程也意味着共享数据,从您提供的非常稀疏的模糊信息来看,使用Queuefrom java.util.concurrency的简单异步方法可能会更好