我有一个读取和写入文件的多线程程序。一个线程接收数据并将它们写入文件。每 250 Mb 的数据,就会创建一个新文件。多个其他线程可以读入这些文件以检索数据。我正在使用 C++ 标准文件流。
为了防止出现问题,我当前的实现对同一个文件使用了两个文件描述符:一个用于读取器,一个用于写入器。互斥锁同时防止多个访问,并且每次互斥锁所有者需要时移动文件描述符位置。
我真的需要能够尽可能快地读取文件,而互斥锁并没有真正帮助我。
首先,我想知道读取和写入文件是否安全或同时进行多次读取(在每个平台上)。其次,如果是,我想知道它对硬盘的“磁盘读写头”等硬件的安全性如何。该软件一直在磁盘上工作以保存数据,我不希望我的算法过多地减少硬盘寿命(已经很短)。
谢谢您的帮助