我正在尝试运行以下未来的基本代码
future { println("ssss")} onSuccess{ case _ => println("succ")}
然而,当我运行main方法时,没有打印到控制台,系统几乎立即退出。我正在使用隐式ExecutionContext。任何提示?
此代码:
val f = future(Await.ready(Promise().future, d.timeLeft))
f.onSuccess {
case _ => println("hee")
}
也会立即退出......
答案 0 :(得分:11)
期货在专用线程池上执行。如果您的主程序不等待将来,它将立即退出,未来将无法执行。
你可以在这里做的是在你的主程序中使用Await
来阻止主线程,直到将来执行:
def main( args: Array[String] ) {
val fut = future { println("ssss")}
fut onSuccess{ case _ => println("succ")}
Await.result( fut )
}