关于Gevent的使用指北

关于Gevent的使用指北

只是看了入门指南,和一个翻译文档。写一下我的读书心得。git

其实看完以后,第一个反映就是asyncio这个系统库,感受gevent如今所作的一些事情是与asyncio很像的,可是他本身有一个很是可怕的黑科技,就是monkey补丁。github

使用gevent的过程能够简单地归纳为,将一个任务(函数)放到gevent.spawn()中,将它变成Greenlets类,这一步我的感受是与asyncio中,将一个函数变成future类或者task类是一个做用,而后就阻塞到所有注册的任务完成。在这个过程当中,这些任务会同时执行,也就是并发。而后gevent也是提供了各类相似threading的接口,和数据结构。数据结构

至于黑科技monkey,就是直接替换了系统库,将系统库变成支持协程的,好处就是,只要导入这个,整个程序就支持协程了,不过最大的问题就是,这是个黑箱操做,在调试方面多是个噩梦。并发

而我为何要用gevent呢,由于我要用gunicorn,一开始我觉得gunicorn的异步模式会很麻烦,要改不少东西,而后我就发现,只须要在gunicorn的配置文件中,打上monkey补丁,而后工人类型设为gevent,就能够了,没错,就是这么简单暴力。异步

相关文章
相关标签/搜索