4

次の将来の基本コードを実行しようとしています

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

ただし、メイン メソッドを実行すると、コンソールには何も出力されず、システムはほぼ瞬時に終了します。暗黙の ExecutionContext を使用しています。ヒントはありますか?

このコード:

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

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

また、すぐに終了します....

4

1 に答える 1

12

Future は専用のスレッド プールで実行されます。メイン プログラムがフューチャを待機しない場合、すぐに終了し、フューチャを実行する機会がありません。ここでできることはAwait、メイン プログラムで使用して、future が実行されるまでメイン スレッドをブロックすることです。

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