假设我有一个定义如下的未来
val fut = Future {
println("Doing some work")
Thread.sleep(5000)
println("Work done")
}
我稍后会访问这个未来,但希望它在启动时执行,而不是在我引用 fut 时执行
我在某处读到过,可以通过执行以下操作立即执行:
scala.concurrent.ExecutionContext.Implicits.global.execute(fut)
但是这不会编译,因为执行仅需要一个 Runnable。有没有办法可以在另一个线程中立即执行这个未来?
使用Scala
Future
创建的Future.apply
将被急切执行。对于非急切执行,您必须定义自己的类来间接
Future
使用创建Promise
。它可以按以下方式使用,