-2
A
回答
1
最好是使用线程处理长时间运行的网络(套接字)操作。如果您在主线程中完成任何活动(或从套接字接收输入之后),这将特别有用。
发电机一般不用于网络运行。
0
如果在处理接收数据的一部分的同时尝试接收更多数据,则需要多线程。这与yield没有任何关系,因为在等待数据被接收的同时,yielding仍然会阻止您的同时处理。
2
这两个工作。两者都有他们的问题。
大卫比兹利很好地谈到双方的问题,并说明了它在这个PYCON 2015年的谈话视频: https://www.youtube.com/watch?v=MCs5OvhV9S4
简短的总结是怎么样的:
- 您可以使用两台发电机/协同例程或线程或多处理来完成您的工作
- 如果有任何事情涉及纯Python中的硬计算工作(像numpy这样的C-Extension可以避免这种情况),那么Python GIL会咬合你的协同例程/线程。
- 只要你主要做I/O,这并不重要。如果工作量较大,则线程效果会更好,如果您的块较小,则协调程序的效果会更好。如果您使用游泳池,例如从期货模块中,您可以调整并改变行为。
很难说一般情况下效果最好,完全取决于您的工作量。
相关问题
- 1. 与发电机
- 2. 与发电机
- 3. Python与发电机的无限递归
- 4. 发电机线程安全吗?
- 5. 离线lorem ipsum发电机
- 6. 在Python,从发电机
- 7. 发电机在Python查询
- 8. Python的发电机行为
- 9. 的Python的发电机跃
- 10. 修改与GWT发电机
- 11. 发电机设计与Java
- 12. Angularjs4与快递发电机
- 13. 行发电机与textviews
- 14. 发电机功能与pymongo
- 15. SQLAlchemy的exectutemany与发电机
- 16. 使用与发电机
- 17. 无法与发电机pyresttest
- 18. 与PHP相比,Python进程,线程与虚拟主机相比
- 19. Python中的线程与发送到线程的参数
- 20. Python MP3Play与线程
- 21. 球在线判断素发电机
- 22. 路线,宝石和发电机
- 23. 在线Lorem存有发电机
- 24. 蟒蛇发电机的发电机?
- 25. 从发电机调用发电机
- 26. 发电机,推迟到子发电机
- 27. python线程,多线程与threading.thread
- 28. Python中的线程与线程模块
- 29. 多线程PHP与多线程Python
- 30. 环路由n个元素与发电机在Python
谢谢你的答案。看大卫脚本是太棒了。 – arj