假设我需要在Scala中执行一些并行任务。每个任务都会执行一些阻止调用(例如Process.waitFor
)。现在,我想等到所有任务完成。
据我了解,我应该使用Scala Future
来包装任务。 Scala中是否有任何API可以等到给定的Futures
中的任何一个完成?
最佳答案
有内置的方法可以做到这一点:
Future.firstCompletedOf(yourFutures)
from the doc:
Returns a Future to the result of the first future in the list that is completed.
请注意,这不会中断所有其他 future ,因此您可以根据需要自行取消它们。
关于multithreading - 等待斯卡拉的任何指定 future 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950430/