協程是簡化併發編程的絕佳範例。大多數情況下,併發任務很容易並行化。在Go語言中,很容易使用goroutines來執行並行任務。有沒有辦法在Python中做同樣的事情,例如使用協程來創建進程並同步它們?在Python中使用協程進行並行編程
5
A
回答
3
是的,Python支持庫和通過生成器的協同程序:例如,請參閱Greenlet庫。此外,還有一個名爲Stackless Python的衍生產品,它內置了對若干併發編程功能的支持,例如微線程和通道。
請注意,在默認CPython中,全局解釋器鎖將只允許一個線程立即運行,這可能是一個問題。
2
如果你想使用標準的python解釋器,greenlet庫是要走的路。
至於GIL,它不應該是一個協程的問題。您可以將greenlet協程模型視爲在一個內核線程內運行的多個輕量級用戶空間「線程」。所以從GIL和OS的角度來看,它仍然是單線程的。
相關問題
- 1. Python - 使用PyQt進行線程編程
- 2. 使用C#進行並行編程
- 3. 使用工具進行並行編程
- 4. 如何在Python 3中重用並行編程的進程池
- 5. 使用python的多處理和進程並行編程defunc
- 6. 使用CVXOPT進行Python二次編程
- 7. 使用Boost進行高階編程:: Python
- 8. 使用python進行Webots編程
- 9. 使用Python進行iOS編程
- 10. Python:使用CVXOPT進行二次編程
- 11. 使用OPC UA協議在python中進行服務器端客戶端編程
- 12. Kotlin並行協程
- 13. 在Python中運行併發.jar進程
- 14. 用C#編程通過OPC協議進行PLC編程
- 15. 在Python和Ruby中進行Web編程的協程或延續。爲什麼不?
- 16. 並行Python子進程
- 17. Python並行編程問題
- 18. 在C#中使用並行編程
- 19. 在C#中使用並行編程
- 20. 與Dropbox並行編程並行編程
- 21. 並行編程使用OpenMP
- 22. 使用openMP並行編程
- 23. Python:如何在python中運行嵌套並行進程?
- 24. 使用Python遠程運行進程
- 25. 有沒有辦法使用Google文檔進行協作編程?
- 26. 並行進程
- 27. 並行進程
- 28. 使用python進行遠程編碼和執行:什麼IDE?
- 29. 如何使用Vim進行Python編程? (初級程序員)
- 30. 使用python運行C++程序並進行測試