在 Python 中,如果我希望我的服务器在 CPU 方面能够很好地扩展,我显然需要生成多个进程。我想知道哪个更好(使用 Twisted):
A)管理进程(持有实际套接字连接的那个)将接收到的数据包放入一个共享队列(来自多处理模块的那个),工作进程将数据包拉出队列,处理它们并将结果发送回客户端。
B) 管理器进程(持有实际套接字连接的那个)启动一个延迟线程,然后调用进程池上的 apply() 函数。一旦结果从工作进程返回,管理器将结果发送回客户端。
在这两种实现中,工作进程都使用线程池,因此它们可以同时处理多个数据包(因为会有很多数据库查询)。