Python协程gevent的优缺点分析
- 更新时间:2021-07-09 08:08:03
- 编辑:双弘致
参考资料
- 高效算法:竞赛、应试与提高必修128例 PDF 电子书 / 8.1 MB / 克里斯托弗 推荐度:
- Python爬虫开发 从入门到实战 PDF 电子书 / 12.33 MB / 谢乾坤 推荐度:
- 《Python面向对象编程指南》源代码 配套资源 / 337.83 KB / [美] Steven F. Lott 洛 推荐度:
- 《Python趣味编程入门》代码文件 配套资源 / 34.34 KB / (英)迈克·桑德斯(Mike Saund 推荐度:
- 精通Python爬虫框架Scrapy PDF 电子书 / 8.6 MB / 迪米特里奥斯 推荐度:
正文内容
《Python协程gevent的优缺点分析》是一篇不错的Python文章,觉得应该跟大家分享,把代码经过测试发布到这里,看完如果觉得有用请记得收藏。
在python2里,协程还是比较复杂的知识点,主要通过gevent模块来实现。我们在使用完Python协程后,会发现在性能上gevent的效益比较可观,但还是存在着许多使用上的不便。本篇就Python协程gevent的优缺点进行分析,帮助大家理解gevent并对用法展开深入的探究。
1、概念
greenlet是轻量级的并行编程,gevent 就是利用 greenlet 实现的基于协程(coroutine)的 python 的网络 library,通过使用greenlet提供了一个在libev事件循环顶部的高级别并发API。即 gevent 是对 greenlet 的高级封装。
2、优缺点
(1)使用gevent,可以获得极高的并发性能,但gevent只能在Unix/Linux下运行,在Windows下不保证正常安装和运行。Python创始人Gvanrossum从来不喜欢Gevent,而是更愿意另辟蹊径的实现asyncio(python3中的异步实现)。
(2)Monkey-patching。中文「猴子补丁」,常用于对测试环境做一些hack。Gvanrossum说用它就是”patch-and-pray”,由于Gevent直接修改标准库里面大部分的阻塞式系统调用,包括socket、ssl、threading和 select等模块,而变为协作式运行。但是无法保证在复杂的生产环境中,有哪些地方使用这些标准库会由于打了补丁而出现奇怪的问题,那么只能祈祷(pray)了。
(3)其次,在Python之禅中明确说过:「Explicit is better than implicit.」,猴子补丁明显的背离了这个原则。
(4)第三方库支持。得确保项目中用到其他用到的网络库也必须使用纯Python或者明确说明支持Gevent,而且就算有这样的第三方库,也需要担心这个第三方库的代码质量和功能性。
(5)Greenlet不支持Jython和IronPython,这样就无法把gevent设计成一个标准库了。
以上就是Python协程gevent的优缺点分析,可以说弊端还是比较多的,所以在python3中衍生出了asyncio的使用,大家可以把gevent做一个简单的了解即可。
相关教程
-
python字典中的键可以重复吗
python中字典的同一个键不允许出现两次,创建时,如果同一键被复制两次,则后一个值会被记录。python字典的值可以是重复的。
发布时间:2019-06-27
-
python自动化脚本安装指定版本python环境详解
这篇文章主要为大家详细介绍了python自动化脚本安装指定版本python环境的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2019-08-26