我可以从多个线程(在典型的PC上)同时写入同一文件的不同部分吗?我的意思是只有一个磁头,所以写入只能以某种顺序执行,即不是并行执行,对吧?
编辑:
我正在编写一个对大型二进制文件进行排序的程序,但大部分时间仍然花在磁盘I/O上,所以我只是想知道通过并行执行I/O可以获得额外的速度.
没有什么可以阻止你让多个线程写入同一文件的不同部分.
我有一个程序可以对大型二进制文件进行排序,但大部分时间仍然花在磁盘I/O上,所以我只是想知道通过并行执行I/O可以获得额外的速度.
如果程序是磁盘绑定的,那么使其成为多线程(并且仍然将相同数量的数据写入同一磁盘)将不会加速它.
如果我们谈论的是传统硬盘驱动器,顺序I/O通常比I/O更快,包括来回移动磁盘头.考虑到这一点,在线程之间拆分I/O甚至可能适得其反.
在加快速度方面,有几种途径可供探索: