我正在创建自己的 IOsystem,它使用 fstream。会有很多线程,我的问题是如何保证它的安全,这意味着允许从一个文件中多次读取但保持独占写入。因此,例如,如果有两个线程要写入文件,我希望第二个线程等到第一个线程关闭其 fstream。在这里Accessing a single file with multiple threads 建议使用 TMultiReadExclusiveWriteSynchronizer 但不确定它是否是最佳选择。我的一个想法是保留地图并在打开任何文件之前手动检查文件是否可以安全打开,如果不能让线程等到文件被释放。
编辑:有没有办法以独占模式打开 fstream?如果您认为 fstream 是在许多线程环境中使用的最差选择,还有哪些其他可能性?