我有以下代码:
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
方法终止后终止。
我该怎么做?
答案 0 :(得分:2)
好吧,由于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)
}