【发布时间】:2014-03-18 02:48:45
【问题描述】:
我们正在编写一个多线程应用程序,该应用程序执行一堆位旋转并将二进制数据写入磁盘。是否可以让每个线程std::fopen 同时写入同一个文件?理由是每个线程都可以完成自己的工作并拥有对可写文件的访问权限。
【问题讨论】:
-
据我所知,写入硬盘并不是真正可线程化的事情(例如,一次只能有一个线程执行)。我可能是错的,其他人可能更能阐明这一点。它也可能是特定于操作系统的东西。为了更深入地解决您的问题,我相信如果该文件的句柄已经打开,大多数操作系统都会锁定对该文件的后续写入访问。
-
并发访问单个文件:已解决问题。很久很久以前就解决了。
-
嗯,没有足够的信息来回答这个问题。所有这些线程是否都在附加数据或写入随机位置?在不知道该问题的答案的情况下,没有人可以回答您的问题。
标签: c++