我在想,Future
是如何评估的?我的意思是如果我们有命令式样式编程,我们执行从A点到B点的程序,在它们之间我们创建一个Future
,当完成后,将结果打印到控制台。我们的程序如何让这个退一步在流程中打印它?
答案 0 :(得分:1)
期货在ExecutionContext上运行,ExecutionContext本质上是一个线程池。在未来创建Future块或使用各种组合和回调方法(map,foreach,onComplete等)时,会有一个隐式执行上下文传递到逻辑将被执行的位置。
在命令式程序中,这与将打印到控制台上的Runnable推送到线程池上大致相同。
这里有一个很好的介绍:http://docs.scala-lang.org/overviews/core/futures.html
关于期货最有用的事情并不是强制性地使用它们,而是使用map和flatMap来构建未来的链条。