【发布时间】:2013-04-24 15:26:50
【问题描述】:
从官方教程参考文献中我无法完全理解期货的一个方面。 http://docs.scala-lang.org/overviews/core/futures.html
scala 中的期货是否具有某种内置的超时机制?假设下面的示例是一个 5 GB 的文本文件……“Implicits.global”的隐含范围最终会导致 onFailure 以非阻塞方式触发还是可以定义?如果没有某种默认超时,这是否意味着成功或失败都不会触发?
import scala.concurrent._
import ExecutionContext.Implicits.global
val firstOccurence: Future[Int] = future {
val source = scala.io.Source.fromFile("myText.txt")
source.toSeq.indexOfSlice("myKeyword")
}
firstOccurence onSuccess {
case idx => println("The keyword first appears at position: " + idx)
}
firstOccurence onFailure {
case t => println("Could not process file: " + t.getMessage)
}
【问题讨论】:
-
请记住,这些解决方案都不会真正阻止
Future运行。唯一可以阻止Future的地方就是它的内部。 -
@NikitaVolkov 您的链接不再有效。试图找到正确的链接但失败了。
标签: scala concurrency