在等待类尚未完成时保持主线程运行

屋大维

我有以下代码:

  val f1: Future[Unit] = Future {
    Thread sleep 5
    println(1)
  }

  val f2: Future[Unit] = Future {
    Thread sleep 10000
    println(2)
  }

  def main(args: Array[String]): Unit = async {
    await(f1)
    await(f2)
 }

我希望主线程在最后一个await方法终止后终止。

我怎样才能做到这一点?

谢尔盖

好吧,由于async/await产生了Future,因此您也需要等待它。

import scala.concurrent.Await
import scala.concurrent.duration._

def main(args: Array[String]): Unit = {
  val future = async {
    await(f1)
    await(f2)
  }
  Await.result(future, Duration.Inf)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章