小编nir*_*fri的帖子

嵌套 Future.sequence 按顺序执行包含的 Futures

我有一个 future( doFour) 被执行并将结果传递给一个平面图。在平面图中,我再执行两个未来(doOnedoTwo)函数,期望它们并行运行,但我看到它们按顺序运行(2.13)。斯卡斯蒂

为什么并行doOnedoTwo不是并行执行?

我怎样才能让它们并行运行?

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)

concurrency scala concurrent.futures

6
推荐指数
1
解决办法
157
查看次数

标签 统计

concurrency ×1

concurrent.futures ×1

scala ×1