进程池终章--终于可以说自己对进程池了解了。。。

之前看过进程池,但是理解的不够透彻,这次算是了解了他的全部过程了吧
一篇自己的领悟,可能对大家帮助不大
进程池需要的结构体:
1.子进程结构体
1.1m_pid负责存储子进程特有的pid
1.2管道负责与主进程进行通信

2.进程池结构体
2.1进程池中进程总数
2.2子进程在池中的序号
2.3进程的epoll内核事件表,m_epollfd标识
2.4监听socket
2.5标识子进程是否结束
2.6保存所有子进程的描述信息
2.7进程池静态实例

前面的是子进程和进程池的结构,整个进程池通过信号进行通信,进程池通过存储子进程的pid来记录创建的子进程

说一下关键部分
(1)主进程使用epoll的et模式进行内核事件表的监控
(2)先运行父进程监控,然后运行所有的子进程
(3)如果有客户端连接,那么父进程依照自己的算法选择合适的子进程,当父进程管道传来的id恰好等于当前子进程的文件描述符且有事件可读那么第一次让相应第i个子进程和父进程进行连接,然后把链接所得的socket注册到子进程的事件表里面去,这样子进程就和客户端链接成功并且可以监听客户端的相应状态变化了(子进程的注册表的变化并不会影响到父进程)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值