5

当我在阅读有关多线程的扭曲文档时,我的印象是,扭曲在单线程中工作得最好,异步完成所有工作。但是我有一种强烈的感觉,我不理解多线程、异步性和性能(速度)之间的关系。

想象一下,我们有一台具有许多 CPU 内核的计算机。我们想在那里部署一个扭曲的服务器,它可以管理高流量。我们可以利用所有的核心让服务器尽可能快地响应。我们应该做什么?我应该使用单线程还是多线程模式?内核数量是否会影响扭曲效率(在 C 级别或 python 级别)?

顺便提一下,我没有考虑任何与缓存、数据库相关的主题(这可以加速任何应用程序)。我只考虑与硬件相关的主题以及线程、进程等。

4

1 回答 1

6

使用Twisted 的内置进程生成 API 生成多个进程。

如果您的服务器要在 UNIX 上运行,您可以使用反应器套接字传输方法在服务器中的进程之间移动连接和侦听端口(尽管这些接口有一天也可能被移植到 Windows)。

在 Python 中生成多个线程(无论您使用的是 Twisted 还是类似的系统)将不允许您使用多个内核,因为全局解释器 lock

于 2013-10-08T22:59:10.283 回答