用greenlet实现协程消费者生产者

Posted cxhzy

tags:

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

代码:

  from greenlet import greenlet

  import random

  def pro():    生产者

    while True:

      item = random.randint(0,99)

      print("生产了:",item)

      c.switch(item)    向消费者发送item ,并阻塞自己,解阻塞消费者

  def consumer():    消费者

    while True:

      item = p.switch()  用item接收生产者的数据,阻塞自己,解阻塞生产者

      print("消费了:",item)

  p = greenlet(pro)

  c = greenlet(consumer)

  c.switch()    从消费者开始执行

 

      技术分享图片

 

以上是关于用greenlet实现协程消费者生产者的主要内容,如果未能解决你的问题,请参考以下文章

Python协程实现生产者消费者模型

python 生产者消费者问题的Python的协程实现

简单介绍什么是协程及其在ES6中的实现方式

队列,生产者消费者模型,协程,异步IO

Python中协程的实现

Kotlin 协程Channel 通道 ③ ( CoroutineScope#produce 构造生产者协程 | CoroutineScope#actor 构造消费者协程 )