gpt4 book ai didi

c - 是否可以从多个线程写入同一文件的不同部分?

转载 作者:太空狗 更新时间:2023-10-29 16:48:37 25 4
gpt4 key购买 nike

我可以从多个线程(在典型的 PC 上)同时写入同一文件的不同部分吗?我的意思是只有一个磁盘头,所以写入只能按某种顺序执行,即不能并行,对吧?

编辑:

我正在编写一个对大型二进制文件进行排序的程序,但大部分时间仍花费在磁盘 I/O 上,所以我只是想知道通过并行执行 I/O 是否可以获得额外的速度。

最佳答案

没有什么可以阻止您让多个线程写入同一文件的不同部分。

I have a program that sorts a large binary file but the majority of time is still spent on disk I/O, so I'm just wondering will I gain any extra speed by doing I/O in parallel.

如果程序是磁盘绑定(bind)的,使其成为多线程(并且仍然将相同数量的数据写入同一磁盘)不会加快速度。

如果我们谈论的是传统硬盘驱动器,顺序 I/O 通常比涉及来回移动磁头的 I/O 更快。考虑到这一点,跨线程拆分 I/O 甚至可能适得其反。

就加速而言,有几种途径可供探索:

  1. 减少 I/O 量(例如,通过采用需要较少 I/O 的排序算法,或通过在内存中完成更多工作);
  2. 提高 I/O 吞吐量,例如使用更快的驱动器。

关于c - 是否可以从多个线程写入同一文件的不同部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15477925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com