java - Java - 如何同步和并行调用返回字符串的函数?
问题描述
我需要调用一个返回字符串的函数。UI 提供了一个 ID 列表,我需要为其调用一个创建文件并返回文件名的函数。目前,我正在以迭代方式调用该函数。完成每次迭代后,我将文件名放入一个 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());
推荐阅读
- shiny - 如何在闪亮仪表板的信息框中同时显示描述和图标的副标题
- algorithm - 在链表中查找循环的开始
- c# - 用户有 5 次尝试猜测 1 到 100 之间的数字的控制台应用程序
- python - PyGame - 带有 ps3 控制器的 RaspberryPi 3b+
- javascript - 使用引导表单验证时 window.location 不起作用
- javascript - 如何在spring boot java代码中按日期获取用户数据
- c# - 使用 C# 在 Xpath 中查询元素
- python - 从元组列表中创建一个 DataFrame
- r - quantmod 函数中的 fix.by(by.y, y) 错误
- javascript - 调用 DynamoDB 查询然后将结果写入 s3 存储桶:如何使用异步等待简化此代码?