生成器协程(yield)

Posted autoria

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器协程(yield)相关的知识,希望对你有一定的参考价值。

来自: https://en.wikipedia.org/wiki/Coroutine

生成器,也称为semicoroutines,[5]也是子程序的泛化,但比协同程序更受限制。 具体来说,虽然这两个都可以多次产生,暂停它们的执行并允许在多个入口点重新进入,但是它们的不同之处在于,协同程序可以控制在它们屈服之后执行继续的位置,而发生器不能,而是将控制转移回生成器的调用者 。[6] 也就是说,由于生成器主要用于简化迭代器的写入,所以生成器中的yield语句不指定要跳转到的协程,而是将值传递回父例程。

协程是非抢占的

"Subroutines are special cases of ... coroutines." –Donald Knuth.[3]

 

以上是关于生成器协程(yield)的主要内容,如果未能解决你的问题,请参考以下文章

python协程:yield的使用

生成器协程(yield)

python yieldyield from与协程

理解Python协程:从yield/send到yield from再到async/await

理解Python协程:从yield/send到yield from再到async/await

Python协程深入理解(转)