使用多线程读取单个文件



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

例如,线程

1 读取具有一个长度单词的行,线程 2 读取两个长度的行,并且......

有什么办法可以做到这一点吗?如果是,性能将受到怎样的影响?

我找到了这个例子,但我无法放在一起。

参考 1:多线程文件读取

参考2:如何在多线程模式下读取文件?

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

有什么办法可以做到这一点吗?

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

您可以做的是处理不同线程中的不同行,但是这取决于CPU的密集程度,以及它是有帮助还是更慢。

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

最新更新