1

据我所知,在 Python 中,如果您在多核环境中使用普通线程,GIL 通常会运行并以负面的方式影响性能(因为线程会不断尝试获取和释放 GIL 并执行线程/处理器之间的大量上下文切换)。

这就是为什么很多人开始使用绿色线程,例如 eventlet。eventlet 库允许您让多个绿色线程协同工作并在单个处理器中完美工作(更少的同步问题、快速生成/效率等)。

我的问题是,如果我有一个多核操作系统并且要设计我的 python 应用程序,我应该遵循什么最佳实践或设计模式来利用协作线程(绿色线程)和多核处理器。

4

1 回答 1

1

我第一次在关于 Youtube 增长的技术演讲中看到的非常通用的方法是这样的:识别并修复你的瓶颈、饮酒、睡眠等,然后再继续处理瓶颈。

所以,你有太多的工作并且核心闲置时,运行更多的进程。使用相同的方法,您将知道何时停止甚至缩小进程池。

[1] https://www.youtube.com/watch?v=ZW5_eEKEC28

于 2013-06-09T12:37:27.253 回答