多线程java与scala在单独线程上读取文件
我想知道在行业实践中最好的方法是使用多线程方法读取文件。在Java中,我将执行以下操作:
class Reader { Result readFile(File file, Listener callback) }
class Listener { void process(Result r) }
读取器将生成另一个线程以生成结果,然后使用工作线程回调Listener
。这是一个好办法吗?这将如何转化为Scala,它可能有其他更好的机制来实现这一点
# 1 楼答案
Scala中的一种方法是使用并行集合。假设你有一系列文件:
可以使用
files.par
将其转换为并行集合,然后使用map进行处理。Map将在内部使用线程池来并发处理部分序列。使用什么样的线程池可以是configured# 2 楼答案
这似乎是Akka的一个很好的用例,如果您想要一种替代方法的话