【发布时间】:2014-09-23 06:48:09
【问题描述】:
“序列”一词的意思是一系列一个接一个的动作。
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 期货中的所有期货都是串行触发的(而不是并行)?
【问题讨论】:
-
这是一个结果序列,而不是效果序列
-
另外,我猜这个名字来自于单子序列。
-
你也可以用这段代码stackoverflow.com/a/41657239完成结果