文档目录

单线程 Reactor(Redis 就是这种):

一个 Event Loop(epoll_wait):
  while (true) {
    epoll_wait();    // 等待事件
    for (每个事件) {
      if (可读) 读取数据 → 处理请求 → 发送响应
      if (可写) 继续发送
      if (新连接) accept
    }
  }

优点:没有多线程竞争问题,简单。 缺点:一个请求处理慢了,阻塞所有后续请求。

多线程 Reactor(最常见模型):

Main Reactor(一个线程):
  accept 新连接 → 分发给 SubReactor

SubReactor(多个线程,每个一个 epoll):
  epoll_wait(该连接) → 读取数据
    → 把解析好的请求提交给 ThreadPool 处理
    → 在工作线程中执行业务逻辑
    → 工作线程完成后,通知 SubReactor 发送响应