我如何使用Javamultithreading从多个文件中读取?

我想阅读并解析很多文件。 由于有超过10000个文件需要解析,我想通过使用线程来加快这个过程。

例如,如果我有5个线程,我想让它们同时读取一定数量的文件,这样读取和解析的过程就会更快。 这可能吗? 通过将其分成线程,我可以获得任何显着的加速吗? 如果是这样,我该怎么做?

PS我不反对使用外部库。

我正在使用jdk 1.6

如果要读取的文件很多,则更好的方法是每个文件只读一个线程。 在大多数情况下,使用multithreading处理许多任务的最佳方法是使用使用线程池的ExecutorService。 为要读取的每个文件向服务提交任务。 使线程池足够大以保持I / O系统繁忙(这可能是瓶颈)并且您将最大化性能。

有关并行读取一个文件的信息,请参阅如何在Java 8中并行读取文件的所有行。

在您的情况下,我只是启动一个线程池,其中包含您的进程允许的多个线程,每个线程都有一个“读取整个文件”请求分配给它的文件,并让操作系统决定要读取哪些文件哪个订单。