- 6
- 0
- 约9.23千字
- 约 15页
- 2016-05-11 发布于湖北
- 举报
1. 介绍
在上一节,我们介绍了Linux简单的并发服务器,通过在服务器端建立多个子进程,来接收客户端的请求,实现并发处理,但这种方式明显有缺陷,服务器并不知道客户端请求的数量,所以事先建立的进程数不好确定。所以,这里介绍三种高级并发服务器模式。第一种是服务器端统一accept,接收客户端的到来,然后为每个客户端分配一个进程去处理. 第二种是统一accept接收请求,然后为每个客户端分配一个线程去处理。第三种建立多个线程去处理客户端请求,每个线程独自监听客户端的请求。显然,第一种方案解决了简单服务器的并发问题。第二种方案其实是对第一种方案的改进,因为线程切换的开销明显要小于进程切换的开销。第三种方案就是原来用进程去处理每个请求,现在换成用线程去处理,个人认为改进不是很大.
2. 高级并发服务器算法流程
(1)统一accept,多进程
? socket(...);
? bind(...);
? listen(...);
? while(1){
? accept(...);
? fork(...);//子进程
?}
?close(...);//关闭服务器套接字
子进程:
?recv(...);
?process(...);
?send(...);
?close(...);//关闭客户端
(2)统一accept,多线程
? socket(...);
? bind(...);
? list
原创力文档

文档评论(0)