聊聊C++ 实现进程池:主从架构、管道通信与任务调度

刷到一个挺有意思的话题,结合自己之前的经验,整理了一下核心要点。

主/从进程池架构

一、原理

1 个主进程(Master)+ 预先创建 N 个子进程(Worker)

主进程只管分配任务,子进程只管处理任务

通过管道通信,实现高并发、稳定、不重复创建销毁进程

二、三大核心角色

1. Master(主进程)

  • 唯一
  • 不处理业务
  • 只做 4 件事:
创建进程池(fork 一堆子进程)
  • 接收任务
  • 分发任务(发给空闲子进程)
  • 管理子进程(监控、重启、回收)

2. Worker(子进程 → 进程池)

  • 预先创建好 N 个
  • 一直活着,不退出
  • 阻塞等待任务
  • 收到任务 → 处理 → 继续等待

3. 管道(通信通道)

  • 每个子进程一条管道
  • Master 写 → 发任务
  • Worker 读 → 收任务
  • 阻塞等待,天然实现同步控制

三、代码

```

include


include


include


include


include


include


include


include


include

define POLL_SIZE 4

// 任务列表
void SyncDisk() {
std::cout


暂时整理到这里。以上都是个人理解,可能有疏漏,欢迎指正。

评论 (0)

暂无评论