2013-04-11 48 views
6

假設我需要在Scala中執行一些並行任務。每個任務執行一些阻止呼叫(例如Process.waitFor)。現在我想等到任何任務完成。等待Scala中的任何特定期貨?

據我所知,我應該使用Scala Future來包裝任務。 Scala中是否有任何API等待任何給定的Futures完成?

回答

13

有這樣做的內建方法:

Future.firstCompletedOf(yourFutures) 

from the doc

返回一個未來的是 完成列表中的第一個未來的結果。

請注意,這不會中斷所有其他期貨,因此如果需要,您可以自行取消它們。