我有一个 future( doFour) 被执行并将结果传递给一个平面图。在平面图中,我再执行两个未来(doOne和doTwo)函数,期望它们并行运行,但我看到它们按顺序运行(2.13)。斯卡斯蒂
为什么并行doOne而doTwo不是并行执行?
我怎样才能让它们并行运行?
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration.Duration
import scala.concurrent.{Await, Future}
object Test {
def doOne(): Future[Unit] = Future {
println("startFirst"); Thread.sleep(3000); println("stopFirst")
}
def doTwo(): Future[Unit] = Future {
println("startSecond"); Thread.sleep(1000); println("stopSecond")
}
def doFour(): Future[Unit] = Future {
println("do 4"); Thread.sleep(1000); println("done 4")
}
def main(args: Array[String]) {
val resOut = doFour().flatMap { a =>
val futureOperations = Seq(doOne(), doTwo())
val res = Future.sequence(futureOperations)
res
} …Run Code Online (Sandbox Code Playgroud)