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

时间:2013-04-11 13:44:19

标签: multithreading scala future

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

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

1 个答案:

答案 0 :(得分:13)

有这样做的内置方法:

Future.firstCompletedOf(yourFutures)

from the doc

  

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

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