Java-如何在同步和并行中调用返回字符串的函数?

时间:2018-10-24 01:25:35

标签: java parallel-processing future executorservice

我需要调用一个返回字符串的函数。 UI提供了ID列表,我需要为其调用一个函数来创建文件并返回文件名。当前,我正在以迭代方式调用该函数。完成每次迭代后,我将文件名放入ArrayList中,稍后将使用它。

如何并行调用该函数,然后将每个结果添加到数组列表中,并等待所有线程完成,然后再执行另一段代码?

这是我的示例代码。

List<String> fileNames=new ArrayList<>();

for (Object ob : objectList){
    String filename = createFilename(ob);
    fileNames.add(filename);
}

1 个答案:

答案 0 :(得分:4)

如果您使用的是Java 8+,这是流的完美用例:

List<String> fileNames = objectList.parallelStream()
        .map(ob -> createFilename(ob))
        .collect(Collectors.toList());