今天看廖雪峰老师的python博客,异步io章节,接触到了携程(误),根据博客描述,总结的两个特点为:
虽然以前操作系统课接触过,但是还是让身为java码农的我感到懵逼,看了一下博客中的协程生产者消费者示例代码,产生了如下理解,希望路过的大佬指正
1)实例化消费者,其实就是占据内存中的某个地址
2)produce(c) ,将该地址传入生产者
3)生产者 -- c.send(None),生产者中,向c这个地址发送了一个空对象,同时send方法会让出执行权
4)消费者 -- 获取执行权,走到循环体中,遇到yield r,让出执行权,并通过yield方法将r存入c地址
5)生产者 -- 或者执行权,从c地址获取返回的r,接着执行n=0,进入循环,执行到c.send(n),此时将n=1传入c地址,并让出执行权
6)消费者 -- 获取执行权,从c地址获取生产者传入的n,打印Comsuming s%,并给r赋值200 ok,进入第二次循环,通过yield r将200 ok传入c地址,并让出执行权
7)生产者 -- 获取执行权,从c地址获取200 ok,打印Comsumer return s%
如此循环