python扭曲的多线程服务器

标签 python multithreading twisted python-multithreading

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

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

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

最佳答案

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

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

在 Python 中生成多个线程(无论您使用的是 Twisted 还是类似的系统)都不允许您使用多个内核,因为 global interpreter lock .

关于python扭曲的多线程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19259139/

相关文章:

multithreading - MonoTouch 6.x 中的线程模型更改?

PHP pthreads : Fatal error: Class 'Thread' not found

python - Twisted:如何将服务器绑定(bind)到指定的 IP 地址?

python - 我在 python/twisted 中收到 'nonetype' 不可迭代错误

python - 使 Twisted 应用程序的某些部分可重新加载的策略或支持?

python - 如何在 Python 脚本中运行 bash 命令

python - 绘制人口稀少的二维 numpy 数组

python - Sklearn set_params 正好接受 1 个参数?

python - ubuntu 14.04 如何从 13.3 升级到 scipy 14.0

c++ - 是否有用于封装线程行为的通用设计模式或面向对象的方法?