2013-10-08 87 views
3

当我在读twisted docs on multithreading,我有这样的印象,那扭曲的工作在一个单独的线程最好的,异步做的所有工作。但我有一个强烈的感觉,我不明白,多线程,异步和性能(速度)之间的关系。蟒蛇绞多线程服务器

假设我们已经有了很多的CPU内核的计算机。我们想在那里部署一个扭曲的服务器,这将管理高流量。我们可以利用所有内核来尽可能快地响应服务器。我们应该做什么?我应该使用单线还是多线模式?内核数量是否会影响扭曲效率(在C级别还是在python级别)?

就更不用说了,我不会考虑任何缓存,数据库 - 相关主题(这可能加速任何应用程序)。我只考虑硬件相关的主题以及线程,进程等。

回答

2

产生多个进程,使用Twisted's built-in process-spawning API

如果您的服务器要在UNIX上运行(尽管这些接口有一天也可能移植到Windows),您可以使用reactor socket-transferring methods在服务器中的进程之间移动连接和侦听端口。

由于global interpreter lock的原因,在Python中产生多个线程(不管您是使用Twisted还是使用类似系统)都不允许您使用多个内核。

+0

你的回答给了我一些我必须阅读的资源,但这看起来很有价值。非常感谢! – ducin