C-Linux语言短期课程:进程池与线程池设计及实现.pdfVIP

  • 0
  • 0
  • 约6.07千字
  • 约 9页
  • 2026-06-09 发布于北京
  • 举报

C-Linux语言短期课程:进程池与线程池设计及实现.pdf

1、进程池

目的:实现多个客户端同时文件

1.1进程池工作流程

如上图所示,首先我们通过父进程创建了很多个子进程,每个子进程与父进程直接都有

一条全双工的管道,父进程是我们的,当1号客户端请求连接文件时,父进程接收

到请求,产生new_fd,并把new_fd发送给非忙碌的子进程a,由子进程a将文件传输给1

号客户端。这时2号客户端请求文件,父进程接收请求得到new_fd,由于这时子进程a

忙碌,所以将new_fd发送给子进程b,由子进程b负责给2号客户端文件。

1.2主要数据结构

父进程管理子进程所使用的数据结构

typedefstruct{

pid_tpid;//子进程的pid

intfd;//管道的一端

shortbusy;//代表子进程是否忙碌,0代表非忙碌,1代表忙碌

}process_data;

创建多少个子进程,我们就用多少个对应的结构体管理子进程。

1.3进程池代码编写流程

第一步:

make_child函数初始化子进程

循环创建子进程,并初始化父进程的子进程管理结构体数组parr,通过socket_pair将socket

描述符一端放入数组

第二步

子进程流程,目前让子进程死循环

文档评论(0)

1亿VIP精品文档

相关文档