我正在做一點python多線程編程,發現我的代碼結果奇怪,根本不是並行(8核心,8線程,13%cpu利用率)。然後我找到了一個python GIL術語和這些幻燈片(http://www.dabeaz.com/python/GIL.pdf)。 python是不是可並行化的嗎? 多處理模塊是否有助於利用計算資源,或者存在另一個性能問題?python多線程編程
0
A
回答
2
從docs:
CPython的實現細節:在CPython的,由於全球 解釋器鎖,只有一個線程可以執行Python代碼一次 (即使某些業績爲導向的庫可能克服 這個限制)。如果您希望您的應用程序更好地使用多核機器的計算資源,建議您使用 使用多處理器。但是,如果要同時運行多個I/O限制的任務,線程仍然是合適的模型 。
拇指一般規則:
當你的瓶頸是I/O(如寫入磁盤...) - 考慮threading它允許程序繼續運行的其他地方時有物體擋住執行路徑。
當你的瓶頸是CPU功耗時,考慮允許CPU利用率的multiprocessing。
+0
如果我不能產生新的進程,我該怎麼辦?有沒有任何第三方庫通常意義上使用線程。 – itun
+0
你應該去蟒蛇的房間尋求建議,而不是在這裏開始一個基於意見的討論。聊天室:http://chat.stackoverflow.com/rooms/6/python –
相關問題
- 1. 多線程編程
- 2. 多線程編程
- 3. 多線程編程
- 4. Python多線程
- 5. 多線程python
- 6. Python多線程
- 7. 多線程PHP與多線程Python
- 8. Python:多線程程序udp
- 9. memcpy的多線程編程
- 10. 多線程編程C++
- 11. Python多線程py2exe
- 12. Android Python多線程
- 13. Python多線程「ping」
- 14. 硒python多線程
- 15. 多線程在python
- 16. java編程和java單線程多線程問題(單線程與多線程)
- 17. python線程,多線程與threading.thread
- 18. Python多線程 - 主線程塊socket.connect
- 19. 多線程Python:線程通信
- 20. python多線程長線程運行
- 21. python多線程使用python
- 22. Python的多功能多線程與線程。線程? (可變線程數)
- 23. Python - 多線程/多處理
- 24. Python編程多選
- 25. 多線程多客戶端編程
- 26. Python - 使用PyQt進行線程編程
- 27. 以編程方式在多線程中退出python腳本
- 28. 多線程python請求
- 29. Python的多線程輸出
- 30. Python的多線程Django
你使用哪個多線程庫? – Nebril
http://stackoverflow.com/questions/6821477/python-code-performance-decreases-with-threading – NPE
@Nebril我使用標準線程模塊,你可以推薦別的東西。因爲產生新的流程並不適合我。 – itun