协程是简化并发编程的绝佳范例。大多数情况下,并发任务很容易并行化。在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++程序并进行测试