fstream を使用する独自の IOsystem を作成しています。多くのスレッドがあり、私の質問は、どうすればそれを安全に保つことができるかということです。つまり、1 つのファイルから複数の読み取りを許可し、排他的に書き込みを続けることを意味します。たとえば、ファイルに書き込みたい 2 つのスレッドがある場合、最初のスレッドが fstream を閉じるまで 2 番目のスレッドを待機させます。複数のスレッドで単一のファイルにアクセスする場合、 TMultiReadExclusiveWriteSynchronizer を使用することが提案されましたが、それが最適なオプションかどうかはわかりません。私の考えの 1 つは、マップを保持し、ファイルを安全に開くことができる場合は、ファイルを開く前に手動でチェックすることです。そうでない場合は、ファイルが解放されるまでスレッドを待機させます。
編集: fstream を排他モードで開く方法はありますか? 多くのスレッド環境で fstream が最悪のオプションであると思われる場合、他にどのような可能性がありますか?