Mac OS X上的异步I / O.

时间:2010-04-20 08:53:48

标签: c++ iphone macos asynchronous polling

含义the C10K problem,在Mac OS X上进行异步I / O的最佳方法是什么(假设在Mac和iPhone / iPad上使用)?

在Linux上我们选择 epoll ,在Windows上是 I / O完成端口

首要任务是性能和可扩展性(数千个连接)。

更新

行。由于达尔文是类似BSD的系统,我的共同想法是使用 kqueue 。这是正确的方向吗?听听这个领域有经验的人会很高兴。

由于

2 个答案:

答案 0 :(得分:3)

Boost.Asio是一个出色的跨平台,高性能的C ++网络库。在Mac OS X上,它使用kqueue作为reactor事件循环,其他平台使用epoll,I / O完成端口,轮询或选择。它可以扩展到数千个连接而不会出现问题。顾名思义,它通过使用proactor设计模式实现并发而不使用线程来促进异步编程。

答案 1 :(得分:1)

如果使用libev,您可以在各种兼容的异步IO后端(epoll,kqueue,select等等)之间切换,而无需担心实现细节。

http://software.schmorp.de/pkg/libev.html