等待Scala中任何给定的期货?

Mic*_*ael 6 multithreading scala future

假设我需要在Scala中执行一些并行任务.每个任务执行一些阻塞调用(例如Process.waitFor).现在我想等到任何任务完成.

据我所知,我应该使用Scala Future来完成任务.Scala中是否有任何API等待任何给定的Futures完成?

om-*_*nom 13

有这样做的内置方法:

Future.firstCompletedOf(yourFutures)
Run Code Online (Sandbox Code Playgroud)

来自文档:

返回完成列表中第一个未来结果的Future.

请注意,这不会打断所有其他期货,因此如果需要,您可以自行取消它们.