tinyserver 使用进程池+epoll方式实现的简单http服务器。父程序创建进程池,并监听客户端连接。父进程与子进程池之间利用管道进行通信,父进程将连接请求通知子进程处理(采用轮询方式选择),子进程完成客户端http请求处理过程。父子进程在接收到注册信号后调用信号处理函数进行处理。信号处理函数仅通知当前信号事件,逻辑处理交由用户态代码完成,避免信号处理时间过长(如果采用signal信号处理方式还可能导致信号丢失)。 实现模型图: cgi程序修改自J.David源码,以验证服务端逻辑功能。后续考虑抽象“子进程选择”功能,采用其他负载均衡策略测试。由于cgi会使用标准输入输出接口,故守护进程功能(daemon_init)未进行部署。 部署方法 make ./tinyserver 在浏览器输入:127.0.0.1:8001 如果POST命令不能正常显示返回结果,将htdocs目录下的cg
2022-08-08 20:30:15 38KB C++
1
进程池与线程池学习ppt
2022-06-11 20:03:21 1.54MB 进程池与线程池学习ppt
1
Linux C开发的Linux进程池。 Linux C开发的Linux进程池。 Linux C开发的Linux进程池。 Linux C开发的Linux进程池
2021-12-06 20:33:08 12KB Linux 进程池
1
python多进程探测端口写日日志(带cmd颜色显示) 需要一个代理服务器的列表文件,脚本读取列表并多进程探测端口是否开放,打印的字符有色彩展示,并多进程写入日志文件,使用了进程池
2021-11-08 18:22:06 4KB python 多进程 进程池 端口扫描
1
linux进程池(进程可动态调整)
2021-03-27 19:59:30 38KB linux c++ 多进程 进程池
1