含义the C10K problem,在Mac OS X上进行异步I / O的最佳方法是什么(假设在Mac和iPhone / iPad上使用)?
在Linux上我们选择 epoll ,在Windows上是 I / O完成端口。
首要任务是性能和可扩展性(数千个连接)。
更新
行。由于达尔文是类似BSD的系统,我的共同想法是使用 kqueue 。这是正确的方向吗?听听这个领域有经验的人会很高兴。
由于
答案 0 :(得分:3)
Boost.Asio是一个出色的跨平台,高性能的C ++网络库。在Mac OS X上,它使用kqueue作为reactor事件循环,其他平台使用epoll,I / O完成端口,轮询或选择。它可以扩展到数千个连接而不会出现问题。顾名思义,它通过使用proactor设计模式实现并发而不使用线程来促进异步编程。
答案 1 :(得分:1)
如果使用libev,您可以在各种兼容的异步IO后端(epoll,kqueue,select等等)之间切换,而无需担心实现细节。