假设我需要在Scala中执行一些并行任务。每个任务都执行一些阻止调用(例如Process.waitFor
)。现在我想等到任何任务完成。
据我所知,我应该使用Scala Future
来包装任务。 Scala中是否有任何API等待任何给定的Futures
完成?
答案 0 :(得分:13)
有这样做的内置方法:
Future.firstCompletedOf(yourFutures)
返回列表中第一个未来结果的Future 完成。
请注意,这不会中断所有其他期货,因此如果您需要,您可以自行取消它们。