协程分步理解

这几天学习到了协程,说实话真是不太好理解,但是只要坚持看下去, 好像还是可以看明白的.

所以大家不要泄气, 一定要努力想办法慢慢理解.

下面上一个小示例咱们一起研究一下.


执行结果为:


刚开始确实不明白到底是什么意思, 所以就回头重新学习generator(生成器).

果然温故而知新, 再次学习之后了解到了:

        next函数与send函数很相似,都能获得生成器的下一个yield后面表达式的值,不同的是send函数可以向生成器传参并且获得yield后面的表达式的值,但是要使用send函数必须先得到generator, 不然会报错

接下来一步一步的学习具体内容:

1, 首先执行 produce方法,  执行c.send(None)获取generator,执行consumer方法到了第4行, 此时传进去一个None, 返回一个""(空字符串),只不过我们没有接受

2, 继续执行while打印    Producing1...

3,执行c.send(n) 此时接着执行consumer方法, 从第4行继续执行,拿到外部传进去的数字n即1, 第7行打印结果 Consuming1...  ,继续执行第8行r="200 OK",接下来继续执行while, 再次到了yield, 此时返回r的值为"200 OK",此时来到了produce方法的第17行, 打印获取的r的值   Consumerreturn: 200 OK

4,重复执行步骤2, 3

我刚学习Python没多久, 这是我自己的理解, 如果有不对的地方希望大家指正一起学习.谢谢

你可能感兴趣的:(协程分步理解)