【发布时间】:2012-09-29 02:13:34
【问题描述】:
我想知道就行业实践而言,最好的方法是使用多线程方法读取文件。在 Java 中,我会做以下事情:
class Reader { Result readFile(File file, Listener callback) }
class Listener { void process(Result r) }
Reader 将生成另一个线程以生成结果,然后从工作线程中回调Listener。这是一个好方法吗?这将如何转化为 Scala,它可能还有其他更好的机制来实现这一点?
【问题讨论】:
-
不清楚(至少对我而言)您是要读取一个文件还是多个文件。如果文件很多,那么 Kim Stebel 的答案会更好。如果它是需要在不同线程上处理结果的单个文件,那么另一个答案似乎更好。
-
“更好”是什么意思?更短的代码?可能是。性能更高?可能不会,因为 Scala 在幕后生成了大量代码。
-
如果他想同时处理文件中的每一行,他仍然可以使用并行集合来做到这一点。
标签: java multithreading scala concurrency io