进程池流程
来源:互联网 发布:外汇智能交易软件 编辑:程序博客网 时间:2024/05/20 07:36
1、主进程需要申请一个空间来存储数据结构,申请空间的目的是管理子进程
2、创建子进程,初始化数据结构(将pid,busy等赋值为0)从父进程接收new_fd(网络描述符),子进程发送完文件后,通过write管道(具有读写属性)通知父进程自己已经完成任务,可以重新接收任务,也就是说可以重新分配了。
3、初始化sfd(socket fd文件描述符),bind(绑定IP地址和端口号),listen(监听)
4、epoll监控 sfd,将所有的子进程管道(为了避免与网络描述符混淆就叫管道,网络描述符叫套接字)的对端全部监控起来
5、epoll_wait等待是否有客户端连接,wait触发后分为两种情况,sfd可读,accept产生new_fd,找到一个非忙碌的子进程,把new_fd发送给子进程,修改子进程状态为忙碌,关闭close(new_fd)
6、管道对端可读,读空管道,修改子进程状态为空闲
阅读全文
0 0
- 进程池流程
- 进程创建流程
- 进程加载流程
- 启动进程流程
- 进程控制流程
- NPTL进程创建流程
- android 进程注入流程
- linux进程启动流程
- Zygote进程启动流程
- SystemServer进程启动流程
- Android进程启动流程
- android进程启动流程
- 进程及线程创建流程
- Linux内核启动进程流程
- Android System进程启动流程
- Zygote进程的启动流程
- 理解Android进程创建流程
- Android 应用进程启动流程
- Android7.0中文文档(API)-- GridView
- Swift3.0 Result of call to 'XXX' is unused
- ④写给后端工程师的JavaScript教程——js有趣的非数字值NaN、Infinity
- 计算机文化学习笔记5
- Mac OSX 无共享的密钥情况下连接基于L2TP协议的VPN
- 进程池流程
- solr 对数据添加索引
- Hdu 4498 自适应辛普森积分
- Windows学习(008)--线程(一)
- 关于apk打包,报java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap cannot be cast to 的错误
- sql获取分组后的第二条数据 group by limit
- testng测试报告设置
- centos7搭建clonezilla PXE启动(不需要配置dhcp服务器)
- ASP.NET MVC BootstrapDialog