使用多线程读取单个文件

时间:2017-02-01 20:30:11

标签: java multithreading file

我正在尝试读取每行包含一个单词(不同长度)的大文件。 我想用多线程阅读它取决于字符串长度。

例如,第一个线程读取具有一个长度字的行,第二个线程读取两个长度并且......

有没有办法实现这个目标?如果是,那将如何影响表现?

我找到了这个例子,但我不能把它放在一起。

参考文献1:Multithread file reading

参考文献2:How to read files in multithreaded mode?

2 个答案:

答案 0 :(得分:5)

您可以使用多个线程,但速度不会更快。要查找给定长度的所有行,您必须阅读所有其他行。

  

有没有办法实现这个目标?

阅读所有行并忽略您过滤掉的行。

你可以做的是在不同的线程中处理不同的行,但这取决于它对CPU的密集程度是否有帮助或更慢。

答案 1 :(得分:2)

在多线程模式下读取文件只能使事情变慢,因为磁盘驱动器必须在多个读取点之间移动磁头。相反,将计算工作从阅读线程转移到工作线程。