在 C++ 中实现高效的多线程文件 I/O

Implementing efficient multithreaded file I/O in C++

提问人:Roman Dmitrienko 提问时间:8/29/2011 最后编辑:NmdMysteryRoman Dmitrienko 更新时间:1/7/2014 访问量:4888

问:

我目前正在开发一个自定义的跨平台文件服务器(C++,boost)。显然,它将对 HDD 进行大量读取和写入。为了使事情进一步复杂化,它还将是多线程的,并使用异步套接字I/O(带有asio)。

现在,我想知道,是否有任何众所周知的实践、模式或方法可供我使用?也许是一些现有的库或其他东西?当然,我可以尝试从头开始开发它,但这确实感觉像是重新发明轮子。任何一般性建议也将不胜感激。

C++ Boost IO boost-ASIO

评论

3赞 Hans Passant 8/29/2011
把钱花在快速磁盘和分析器上,而不是开发时间上。
0赞 Tom Kerr 8/29/2011
您是否打算处理同一文件上的线程争用?还是线程与文件是 1:1?
0赞 Roman Dmitrienko 8/30/2011
是的,一个文件可以由多个线程访问

答:

-2赞 sarat 8/29/2011 #1

我在快速谷歌搜索上看到的线程很少。请检查这是否有帮助。

评论

0赞 Jagannath 8/29/2011
当他说他正在使用 boost 时,为什么不使用 boost 线程而不是 pthreads 呢?
3赞 Roman Dmitrienko 8/29/2011
好吧,我已经熟悉多线程了。我关心的是实现高效的多线程文件 I/O。
1赞 Sam Redway 8/15/2015
这根本没有回答这个问题。据推测,OP本人已经在谷歌上看过了。他(和我)真的想要一个特定于实现多线程文件 I/O 的答案