【发布时间】:2009-09-24 07:22:26
【问题描述】:
我需要在 Linux 下使用多个线程读取单个文件。 只有读操作,不需要写。 文件读取不需要每次都读取整个文件。 它每次都需要读取文件的一个或多个部分。 我预先存储了每个部分的偏移量。 文件太大,无法放入主内存。
例如,许多用户想要阅读这样的文件。 我使用线程或进程来读取文件以回答用户请求。 Linux下会发生什么? 所有的读取操作都会排队吗? 而操作系统会一一完成文件的读取? 是否可以提高此类操作的性能?
我正在尝试实现一个用于信息检索的简单倒排索引。 我将字典放入内存并在文件中发布列表。 每个文件都包含一个索引段。 在字典中,我可以存储诸如偏移量之类的东西来指向单词的发布列表的位置。 当 100 个用户想要在一秒钟内搜索某物时,他们会提交不同的查询。 所以每次读取都会读取文件的不同部分。
【问题讨论】:
-
我问的时候说错了。文件读取不需要每次都读取整个文件。它每次都需要读取文件的一个或多个部分。我预先存储了每个部分的偏移量。