理解 Scala 的 Futures 和 Promises
Understanding Scala Futures and Promises
我正在努力理解这个概念。我很清楚期货是什么。我对 Promises 有点困惑。下面的代码片段:
val p = Promise[Int]() // gives me a DefaultPromise
val f = p.future // gives me the future computation for the Promise p
下面两个代码片段有什么区别?
p success { 10 }
和
val x = Future {
p success { 10 }
}
我对第一个的理解是,p 成功将完成与该 p 相关的未来计算。该计算是异步的吗?这与使用 Future 块来完成与 Promise p 关联的 Future f 的第二个代码片段有何不同?
在您的示例中,您可以考虑等效的 p success { 10 }
和 Future(10)
。您只需要从 p 中提取未来即可获得相同的结果。
您可以将 Promises 视为可写的 Future
,您将在其中定义计算的成功或失败。由于它看起来有点命令式编程,您可能会在非常特殊的情况下使用它们。您可以在 link.
中看到其中一些案例
我正在努力理解这个概念。我很清楚期货是什么。我对 Promises 有点困惑。下面的代码片段:
val p = Promise[Int]() // gives me a DefaultPromise
val f = p.future // gives me the future computation for the Promise p
下面两个代码片段有什么区别?
p success { 10 }
和
val x = Future {
p success { 10 }
}
我对第一个的理解是,p 成功将完成与该 p 相关的未来计算。该计算是异步的吗?这与使用 Future 块来完成与 Promise p 关联的 Future f 的第二个代码片段有何不同?
在您的示例中,您可以考虑等效的 p success { 10 }
和 Future(10)
。您只需要从 p 中提取未来即可获得相同的结果。
您可以将 Promises 视为可写的 Future
,您将在其中定义计算的成功或失败。由于它看起来有点命令式编程,您可能会在非常特殊的情况下使用它们。您可以在 link.