【发布时间】:2021-06-13 19:14:37
【问题描述】:
我需要并行迭代 100 个 id 并将结果收集到列表中。我正在尝试按照以下方式进行操作
val context = newFixedThreadPoolContext(5, "custom pool")
val list = mutableListOf<String>()
ids.map {
val result:Deferred<String> = async(context) {
getResult(it)
}
//list.add(result.await()
}.mapNotNull(result -> list.add(result.await())
我遇到了错误
mapNotNull(result -> list.add(result.await())
因为等待方法不可用。为什么 await 在这个地方不适用?而是注释行
//list.add(result.await()
工作正常。
使用带有自定义线程池的协程并行运行此块的最佳方法是什么?
【问题讨论】: