斯卡拉未来 - 初学者查询



以下代码执行预期操作。

import scala.concurrent.Future
import scala.concurrent.ExecutionContext
object UseFuture extends App 
{
  implicit val ec = ExecutionContext.global
  Future(println { "This should be run in another thread" })
  println("Test")
}

但我看不到未来的产出。

import scala.concurrent.Future
import scala.concurrent.ExecutionContext
object UseFuture extends App 
{
  implicit val ec = ExecutionContext.global
  Future(println { "This should be run in another thread" })
 }

快速解释一下?

@Thilo是正确的,你的应用退出速度比 Future 开始执行的速度快。基本上,当您使用 Future 时,使用 Await.result 不是好的做法,因此此示例仅用于教育目的:)

import scala.concurrent.{Await, ExecutionContext, Future}
import scala.concurrent.duration._
object UseFuture extends App
{
  implicit val ec = ExecutionContext.global
  println(s"Current thread: ${Thread.currentThread().getId}")
  val future = Future(println { s"Thread id in future: ${Thread.currentThread().getId}. This should be run in another thread" })
  Await.result(future, 15.seconds)
  println("Future has been executed")
}

最新更新