在Mac OS X上的异步I/O

5
意义是什么C10K问题,在Mac OS X上最好的异步I/O方法是什么(假设在Mac和iPhone / iPad上使用)?
在Linux上,我们的选择是epoll,在Windows上是I/O Completion Ports
最重要的是性能和可扩展性(数千个连接)。
更新
好吧。因为Darwin是类似于BSD的系统,我的通常想法是使用kqueue。这是正确的方向吗?很高兴听到有经验的人在这个领域。谢谢

你想在iPhone上搭建一个C10K服务器吗? - Potatoswatter
不,我只需要使它与iPhone兼容。我们的库包含客户端和服务器,因此客户端可以在iPhone上使用。 - stas
2个回答

3

Boost.Asio是一款优秀的跨平台、高性能的C++网络库。在Mac OS X上,它使用kqueue作为反应器事件循环,其他平台使用epoll、I/O完成端口、poll或select。它可以轻松扩展到数千个连接而不出现问题。正如其名称所示,它通过使用proactor设计模式实现并发而无需使用线程来促进异步编程。


1

2
...而且您不会被迫使用boost来臃肿您的应用程序 :) - Electric Wig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接