上一篇文章主要讲述协程原理:同步框架异步化改造—任务协程化 (一)
这篇文章主要讲述项目内部的实践,实践问题,具体问题具体分析。手动从0开始写一个协程调度功能,考虑的东西很多。对于当前的项目,时间不允许。考虑到内部项目是python代码,所以就使用了gevent调度。gevent的patch功能,patch掉底层的io接口。这样就能做到不改业务一行代码,化同步为异步调用。我们
首先提一下 greenlet库。这个库才是真正提供协程切换的接口库。其实,我们只需要greenlet库就可以,按照之前的ucontext协程调度的方式,用greenlet提供的switch接口进行切换。可以理解为,greenlet和ucontext协程库提供的功能是一样的:都是提供最基本的切换协程功能。怎么调度?还得自己去封装。而gevent库就提供了这一层封装。
详情见我的Github博客:
> 更多干货,关注公众号:奇伢云存储。原创不易,谢谢大家支持。