在開發部署在Apache mod_wsgi上的Django應用程序時,我發現在多線程(Python線程; mod_wsgi進程= 1線程= 8)的情況下,Python不會使用所有可用的處理器。使用多處理方法(mod_wsgi processes = 8 threads = 1)一切正常,我可以加載我的機器。Python會使用線程模式下的所有處理器嗎?
所以這個問題:這個Python行爲是否正常?我對此表示懷疑,因爲使用1個線程的進程是默認的mod_wsgi方法。
該系統是:
2xIntel至強5XXX系列(8芯(16超線程))在FreeBSD 7.2 AMD64和Python 2.6.4
感謝所有答案。 我們都發現,這種行爲是正常的,因爲GIL。這裏有一個很好的解釋: http://jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/ 或stackoverflow GIL討論:。
這個問題爲什麼有三個upvotes?一個簡單的谷歌搜索就足夠了。 – aaronasterling 2010-09-11 02:49:03
@aaronasterling:我們希望通過簡單的問題和簡單的答案,讓大量的知識庫成爲一個大型的數據庫。如果您的STFG – HardQuestions 2010-09-11 08:26:57