- 作者:邹祁峰
- 邮箱:Qifeng.zou.job@hotmail.com
- 博客:http://blog.csdn.net/qifengzou
- 日期:2014.05.04
- 转载请注明来自"祁峰"的CSDN博客
1 引言
随着互联网和物联网的高速发展,使用网络的人数和电子设备的数量急剧增长,其也对互联网后台服务程序提出了更高的性能和并发要求。本文的主要目的是阐述在单机上如何进行高并发、高性能消息传输系统的框架设计,以及该系统的常用技术,但不对其技术细节进行讨论。如您有更好的设计方案和思路,望共分享之![注:此篇用select来讲解,虽在大并发的情况下,epoll拥有更高的效率,但整体设计思路是一致的]
首先来看看课本和学习资料上关于处理并发网络编程的三种常用方案,以及对应的大体思路和优缺点:
1) IO多路复用模型
->思路:单进程(非多线程)调用select()函数来处理多个连接请求。
->优点:单进程(非多线程)可支持同时处理多个网络连接请求。
->缺点:最大并发为1024个,当并发数较大时,其处理性能很低。
2) 多进程模型
->思路:当连接请求过来时,主进程fork产生一个子进程,让子进程负责与客户端连接进行数据通信,当客户端主动关闭连接后,子进程结束运行。
->优点:模式简单,易于理解;连接请求很小时,效率较高。
->缺点&#