只是看了入门指南,和一个翻译文档。写一下我的读书心得。git
其实看完以后,第一个反映就是asyncio
这个系统库,感受gevent
如今所作的一些事情是与asyncio
很像的,可是他本身有一个很是可怕的黑科技,就是monkey
补丁。github
使用gevent
的过程能够简单地归纳为,将一个任务(函数)放到gevent.spawn()
中,将它变成Greenlets
类,这一步我的感受是与asyncio
中,将一个函数变成future
类或者task
类是一个做用,而后就阻塞到所有注册的任务完成。在这个过程当中,这些任务会同时执行,也就是并发。而后gevent
也是提供了各类相似threading
的接口,和数据结构。数据结构
至于黑科技monkey
,就是直接替换了系统库,将系统库变成支持协程的,好处就是,只要导入这个,整个程序就支持协程了,不过最大的问题就是,这是个黑箱操做,在调试方面多是个噩梦。并发
而我为何要用gevent
呢,由于我要用gunicorn
,一开始我觉得gunicorn
的异步模式会很麻烦,要改不少东西,而后我就发现,只须要在gunicorn
的配置文件中,打上monkey
补丁,而后工人类型设为gevent
,就能够了,没错,就是这么简单暴力。异步