4

我正在尝试运行以下未来的基本代码

 future { println("ssss")} onSuccess{ case _ => println("succ")}

但是,当我运行 main 方法时,控制台没有打印任何内容,并且系统几乎立即退出。我正在使用隐式 ExecutionContext。有什么提示吗?

这段代码:

  val f = future(Await.ready(Promise().future, d.timeLeft))

   f.onSuccess {
     case _ => println("hee")
   }

也立即退出......

4

1 回答 1

12

期货在专用线程池上执行。如果您的主程序不等待未来,它将立即退出,未来将没有机会执行。你可以在这里做的是Await在你的主程序中使用阻塞主线程,直到未来执行:

def main( args: Array[String] ) {
  val fut = future { println("ssss")}
  fut onSuccess{ case _ => println("succ")}
  Await.result( fut )
}
于 2013-05-03T11:42:39.060 回答