【linux】多进程和多线程并发服务器编程模型 linux服务器开发相关视频解析 : 100行代码搞定用户态协议栈 linux多线程之epoll原理剖析与reactor原理及应用 c/c++ linux服务器开发免费学习地址:c/c++ linux后台服务器高级架构师 一、多进程并发服务器 在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型有:迭代服务器:服务器在同一时刻只能响应一个客户端的请求;并发服务器:服务器在同一时刻可以响应多个客户端的请求。 1、多进程并发服务器的概念 在 Linux 环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请求时,服务器用一个子进程来处理客户请求。父进程继续等待其它客户的请求。这种方法的优点是当客户有请求时,服务器能及时处理客户,特别是在客户服务器交互系统中。对于一个 TCP 服务器,客户与服务器的连接可能并不马上关闭,可能会等到客户提交某些数据后再关闭,这段时间服务器端的进程会阻塞,所以这时操作系统可能调度其它客户服务进程,这比起迭代服务器大大提高了服务性能。 2、多进程并发服务器的流程 (1)面试题—>为什么要多次关闭文件描述符? 每一个socket描述符都有对应的引用计数,该计数存在文件表中。上面程序中打开了lfd和cfd,引用计数分别为1和1,在fork()以后,子进程复制了父进程的socket描述符,所以引用计数也会增加,即lfd和cfd的引用计数都变成了2。此时在子进程中关闭lfd(close(lfd)),在父进程中关闭close(cfd)。这个就保证了子进程处理与客户的连接,父进程负责在监听套接字lfd再次调用accept来接收客户的下一个连接。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/73385.html

