大文件I / O异步与多线程同步I / O.

时间:2014-02-02 02:57:09

标签: c++ linux multithreading

我有一个Linux程序,它将相当大的文件(400MB到10GB)复制到远程NFS服务器。我目前正在使用同步I / O调用将数据复制到NFS挂载。所有这些调用都发生在线程池中的不同线程中。所以我并没有真正阻止主线程的操作。

我听说过很多关于使用Linux AIO来完成这些任务的事情。但我并没有真正看到它为大文件带来的好处。

使用AIO与在线程中运行同步IO有什么优点/缺点?网上有这种类型的情景的统计比较吗?

1 个答案:

答案 0 :(得分:1)

要加快数据传输速度,您可能需要并行传输文件块。这需要许多并行线程。使用AIO,您可以使用有限数量的线程启动多个数据传输,从而为线程堆栈节省内存。但是,如果网络和NFS服务器可以处理的并行数据传输数量有限,那么最好使用线程来简化编程。