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

Posted

tags:

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

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import logging
import random

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s -- %(filename)s:%(lineno)d [%(message)s]',
    stream=sys.stdout,
)

def get_item():
    item = random.sample(range(1, 10), 3)
    return item


def Consume():
    while True:
        item = yield
        logging.debug('Getting %s' % (item))


def Produce(consumer):
    while True:
        item = get_item()
        logging.debug('Producing %s' % (item))
        consumer.send(item)


if __name__ == '__main__':
    consumer = Consume()
    # 这里next的含义时首先要运行到第一个yield,也可以使用consumer.send(None)
    next(consumer)
    producer = Produce(consumer)    

    next(producer)                

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

Python协程理解——基于爬虫举例

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

python基础:协程详解

Python连载38-协程可迭代迭代器生产者消费者模型

python之协程

2020-08-20:GO语言中的协程与Python中的协程的区别?