ファイルを読み書きするマルチスレッドプログラムがあります。1 つのスレッドがデータを受け取り、ファイルに書き込みます。250 Mb のデータごとに、新しいファイルが作成されます。他の複数のスレッドがこれらのファイルを読み取ってデータを取得できます。C++ std ファイル ストリームを使用しています。
問題を防ぐために、私の現在の実装では、同じファイルに対して 2 つのファイル記述子を使用しています。1 つはリーダー用、もう 1 つはライター用です。ミューテックスは同時に複数のアクセスから保護し、ファイル記述子の位置はミューテックスの所有者が必要とするたびに移動します。
ファイルをできるだけ速く読み込めるようにする必要がありますが、ミューテックスはあまり役に立ちません。
まず、ファイルの読み取りと書き込み、または同時に複数の読み取りを行うことが安全かどうかを知りたいです (すべてのプラットフォームで)。第二に、そうであれば、HDD の「ディスク読み書きヘッド」のようなハードウェアにとってどのように安全かを知りたいです。ソフトウェアは常にディスク上で動作してデータを保存しますが、アルゴリズムによってハードディスクの寿命が短くなりすぎないようにします (すでに短い)。
ご協力ありがとうございました