【发布时间】:2013-11-22 11:09:55
【问题描述】:
我有以下代码:
stringList map copyURLToFile // List[String]
def copyURLToFile(symbol: String) = {
val url = new URL(base.replace("XXX", symbol))
val file = new File(prefix + symbol + ".csv")
org.apache.commons.io.FileUtils.copyURLToFile(url, file)
}
如何让 copyURLToFile 并行执行?
Scala Futures 需要一个返回类型,但如果我创建 Future[Unit] 类型的 copyURLToFile,我应该从函数返回什么以及如何返回?
【问题讨论】:
-
Parallel map operations? 的可能重复项
-
你可以在
=和{之间添加future,就像这样:def copyURLToFile(symbol: String) = future{ -
我尝试在 Future {} 中使用函数体并递归地遍历列表,但它不起作用。递归有效,但对 org.apache.commons.io.FileUtils.copyURLToFile 的调用无效(没有创建文件)。我猜问题是 Java 方法返回 void。
-
实际上问题可能是我作为一个独立程序执行它,其主线程在工作线程可以执行之前终止,如此处所述stackoverflow.com/questions/10565475/…
-
Void 本身不是问题,问题是你的主线程没有访问结果,因此它不会等待它。