The C10K problem

大概现在应该考虑的问题是C10M了吧,实践一下。

5种处理大量客户的I/O策略####

  • 每一个连接处理大量客户,用非阻塞I/O和水平读触发
    很流行,尤其重要的是,读通知只是内核的一个提醒,当你去读描述符时,描述符不一定是准备好了的,所以,用非阻塞,很重要。
  • 每一个连接处理大量客户,用非阻塞I/O和边沿读触发
    这种模式对编程错误更的容忍度更低,一旦错过了一个事件,可能这个连接的事件就从此错过了。
  • 每一个连接处理大量客户,用异步I/O
    好像不是很流行,异步I/O实现的目的是为了完成标准大于性能考虑。
  • 一个服务器线程处理一个客户,阻塞I/O
    嗯。。。。有特定场景这种实现性能比较高吗?待考证
  • 将服务器代码拿进内核
    有几个实现,文章介绍的不多。

结论####

最常用的就是i/o复用模型下的水平读触发和边沿读触发,后者理论上具有更高的性能但是对编程要求更严格,下一步实践这两种模型。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容