【发布时间】:2014-01-15 00:31:53
【问题描述】:
我有一些很长的循环,我需要在每次迭代时将一些数据写入文件。问题是写入文件可能很慢,所以我想通过异步写入来减少所需的时间。
有没有人知道这样做的好方法?我是否应该通过写出来创建一个线程来消耗放入其缓冲区的任何内容(在这种情况下,单个生产者,单个消费者)?
我主要对除了标准库 (C++11) 之外不涉及任何内容的解决方案感兴趣。
【问题讨论】:
-
它不是标准库的一部分,但如果您最终不喜欢标准库解决方案,您应该查看libuv
-
@TaylorFlores:谢谢!我会调查一下,但乍一看,它看起来比我需要的要多得多。
-
你现在用什么函数来读写?如果您还没有使用缓冲 I/O 的 stdio 库,请尝试一下。如果是,您可以尝试调用 setvbuf 来增加缓冲区大小。
标签: c++ c++11 asynchronous file-io