scala中Future(Int)和FutureInt之间的区别

Posted

技术标签:

【中文标题】scala中Future(Int)和FutureInt之间的区别【英文标题】:Difference between Future(Int) and FutureInt in scalascala中Future(Int)和FutureInt之间的区别 【发布时间】:2021-10-27 04:01:16 【问题描述】:

我是 Scala 和 Future 的新手。在如下场景中

val a = Future(10)
println(a)
val b = Future20
println(b)

输出是

 Future(Success(10))
 Future(<not completed>)

我不明白为什么使用花括号会改变输出。或者这两个 Future 的基本区别是什么。

【问题讨论】:

小提示:如果你想把已经计算好的值放到Future中,最好使用Future.successful(value)。这不会在线程池中安排额外的任务,Future 值将立即可用。 看看这里docs.scala-lang.org/style/control-structures.html 【参考方案1】:

在这种情况下没有区别。问题是您在创建Future 后立即打印它,因此Future 是否完成取决于调度程序(和随机因素)。

我刚刚运行它并得到了

Future(<not completed>)
Future(<not completed>)

【讨论】:

以上是关于scala中Future(Int)和FutureInt之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Scala 中的嵌套过滤器要么在 Future[Try[Int]] 之上

为啥 Future(1) 在回复和编译程序之间返回不同的结果?

scala的Promise和Future的理解

Scala之Future超时

[转] Scala Async 库 (Scala future, await, async)

scala-Future和Promise