的Python /扭多用户服务器 - 什么是更有效?
-
19-08-2019 - |
题
在Python中,如果我想我的服务器很好地扩展CPU的角度来看,我显然需要生成多个进程。我想知道这是更好的(使用扭曲):
A)的管理器进程(谁保存实际套接字连接的一个)把接收到的分组到共享队列(一个从多处理模块),和工作进程拉分组从队列,处理它们并发送结果返回给客户端。
B)的管理器进程(谁拥有实际的套接字连接)启动一个线程推迟,然后调用进程池apply()函数的一个。一旦从工作进程的结果返回时,管理器将结果发送回客户机。
在两个实施方式中,工作进程使用线程池,这样他们可以在一个以上的数据包的工作一次(因为会有很多数据库查询的)。
解决方案
我认为B是有问题的。该线程将只有一个CPU上运行,即使它运行的进程,线程仍在运行。 A可以是更好的。
最好是尝试和在时间上同时测量,看看哪一个更快,其中一个很好地进行扩展。然而,我会重申,我非常怀疑乙将很好地扩展。
其他提示
我认为,“A”是你想要的答案,但你不必自己做。
您是否考虑过安瓿?
不隶属于 StackOverflow