我想知道就行业实践而言最好的方法是使用多线程方法读取文件。在 Java 中,我会执行以下操作:
class Reader { Result readFile(File file, Listener callback) }
class Listener { void process(Result r) }
Reader 会生成另一个线程来生成结果,然后从工作线程中回调 Listener
。这是一个好方法吗?这将如何转化为 Scala,它可能有其他更好的机制来实现这一点?
最佳答案
Scala 中的一种方法是使用并行集合。假设您有一系列文件:
files:Seq[File] = ...
可以使用files.par
将其变成一个并行集合,然后使用map进行处理。 Map 将在内部使用线程池来并发处理部分序列。使用什么样的线程池可以configured .
files.par.map(readFile).foreach(process)
关于java vs scala - 在单独的线程上读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12788315/