Слово "последовательность" означает последовательность действий один за другим.
object Test {
def main(args: Array[String]) {
def producer() = {
val list = Seq(
future { println("startFirst"); Thread.sleep(3000); println("stopFirst") },
future { println("startSecond"); Thread.sleep(1000); println("stopSecond") }
)
Future.sequence(list)
}
Await.result(producer, Duration.Inf)
}
}
Поэтому я ожидаю, что эта программа будет напечатана: startFirst stopFirst startSecond stopSecond
или даже: startSecond stopSecond startFirst stopFirst
но не (как это бывает): startFirst startSecond stopSecond stopFirst
Почему этот метод не называется Future.parallel()
? И что я должен использовать, чтобы гарантировать, что все фьючерсы в Seq
фьючерсов запускаются поочередно (в отличие от параллели)?