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