Java - 如何同步和并行调用 returns 字符串的函数?
Java - How to call a function in sync and parallel that returns a string?
我需要调用一个 returns 字符串的函数。 UI 提供了一个 ID 列表,我需要为其调用创建文件的函数和 returns 文件名。目前,我正在以迭代方式调用该函数。完成每次迭代后,我将文件名放入 ArrayList 中,稍后我将使用它。
如何并行调用该函数,然后将每个结果添加到数组列表中,并等待所有线程完成,然后再执行另一段代码?
这是我的示例代码。
List<String> fileNames=new ArrayList<>();
for (Object ob : objectList){
String filename = createFilename(ob);
fileNames.add(filename);
}
如果您使用的是 Java 8+,这是流的完美用例:
List<String> fileNames = objectList.parallelStream()
.map(ob -> createFilename(ob))
.collect(Collectors.toList());
我需要调用一个 returns 字符串的函数。 UI 提供了一个 ID 列表,我需要为其调用创建文件的函数和 returns 文件名。目前,我正在以迭代方式调用该函数。完成每次迭代后,我将文件名放入 ArrayList 中,稍后我将使用它。
如何并行调用该函数,然后将每个结果添加到数组列表中,并等待所有线程完成,然后再执行另一段代码?
这是我的示例代码。
List<String> fileNames=new ArrayList<>();
for (Object ob : objectList){
String filename = createFilename(ob);
fileNames.add(filename);
}
如果您使用的是 Java 8+,这是流的完美用例:
List<String> fileNames = objectList.parallelStream()
.map(ob -> createFilename(ob))
.collect(Collectors.toList());