大概现在应该考虑的问题是C10M了吧,实践一下。
5种处理大量客户的I/O策略####
- 每一个连接处理大量客户,用非阻塞I/O和水平读触发
很流行,尤其重要的是,读通知只是内核的一个提醒,当你去读描述符时,描述符不一定是准备好了的,所以,用非阻塞,很重要。 - 每一个连接处理大量客户,用非阻塞I/O和边沿读触发
这种模式对编程错误更的容忍度更低,一旦错过了一个事件,可能这个连接的事件就从此错过了。 - 每一个连接处理大量客户,用异步I/O
好像不是很流行,异步I/O实现的目的是为了完成标准大于性能考虑。 - 一个服务器线程处理一个客户,阻塞I/O
嗯。。。。有特定场景这种实现性能比较高吗?待考证 - 将服务器代码拿进内核
有几个实现,文章介绍的不多。
结论####
最常用的就是i/o复用模型下的水平读触发和边沿读触发,后者理论上具有更高的性能但是对编程要求更严格,下一步实践这两种模型。