在开发部署在 Apache mod_wsgi 上的 Django 应用程序时,我发现在多线程(Python 线程;mod_wsgi 进程=1 线程=8)的情况下,Python 不会使用所有可用的处理器。使用多处理方法(mod_wsgi processes=8 threads=1)一切都很好,我可以完全加载我的机器。
那么问题来了:这种 Python 行为正常吗?我对此表示怀疑,因为使用 1 个线程很少的进程是默认的 mod_wsgi 方法。
该系统是:
FreeBSD 7.2 AMD64 和 Python 2.6.4 上的 2xIntel Xeon 5XXX 系列(8 核(16 带超线程))
谢谢大家的回答。我们都发现这种行为是正常的,因为 GIL。这是一个很好的解释: http: //jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/ 或stackoverflow GIL讨论:什么是全局解释器锁(GIL)?.