在Python中,如果我想我的服务器很好地扩展CPU的角度来看,我显然需要生成多个进程。我想知道这是更好的(使用扭曲):

A)的管理器进程(谁保存实际套接字连接的一个)把接收到的分组到共享队列(一个从多处理模块),和工作进程拉分组从队列,处理它们并发送结果返回给客户端。

B)的管理器进程(谁拥有实际的套接字连接)启动一个线程推迟,然后调用进程池apply()函数的一个。一旦从工作进程的结果返回时,管理器将结果发送回客户机。

在两个实施方式中,工作进程使用线程池,这样他们可以在一个以上的数据包的工作一次(因为会有很多数据库查询的)。

有帮助吗?

解决方案

我认为B是有问题的。该线程将只有一个CPU上运行,即使它运行的进程,线程仍在运行。 A可以是更好的。

最好是尝试和在时间上同时测量,看看哪一个更快,其中一个很好地进行扩展。然而,我会重申,我非常怀疑乙将很好地扩展。

其他提示

我认为,“A”是你想要的答案,但你不必自己做。

您是否考虑过安瓿

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top