【发布时间】:2020-11-03 03:37:29
【问题描述】:
我正在尝试对目录中的每个文件同时运行一个函数。可悲的是,每当我使用 Futures 时,我的程序都不想终止(永远运行)。我尝试使用Await.result() 得到相同的结果:/
运行代码时,它执行得很好,甚至“完成?”被打印出来然后挂起……
这是我的代码。 (我是 Scala 新手)
val execService = Executors.newFixedThreadPool(3)
implicit val execContext = ExecutionContext.fromExecutorService(execService)
val futures = for (file <- filesList) yield Future {
println(file)
// theFunc(file)
}
val seq = Future.sequence(futures)
seq.onComplete {
case Success(x) => println("finish?")
case Failure(e) => println(e)
}
【问题讨论】:
-
试试
Await.ready(Future.traverse(filesList)(theFunc), Duration.Inf),其中theFunc已经返回了一个Future。 -
感谢您的回复,遗憾的是我仍然无法终止它:/
标签: scala file concurrency future