gz 形式の 1000 個のファイルのコレクションがあります。私はそれらをチャンクで並行して処理したいと思います。たとえば、各ラウンドで 8 とします。すべてのスレッドがファイルを開いてディスクから読み取るようにすると、多くのプロセスがさまざまな場所から読み取ろうとするため、大幅な遅延が発生しました。
複数のファイルの読み取りを処理する効率的な方法があるかどうか疑問に思っていますか? または、最初にすべてのファイルをメモリにバッファリングします (たとえば、8 つのファイルすべてをバッファしてからスレッドに渡します)。もしそうなら、ファイルをバッファリングする最良の方法は何ですか? バッファ配列? またはいくつかの代替構造?
ありがとうございました。