Python生成器实现简单"生产者消费者"模型代码实例
作者:Kong-Ming 发布时间:2022-06-30 02:36:03
标签:Python,生成器,生产,消费
生成器定义
在Python中,一边循环一边计算的机制,称为生成器:generator。
为什么要有生成器
列表所有数据都在内存中,如果有海量数据的话将会非常耗内存。
如:仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
如果列表元素按照某种算法推算出来,那我们就可以在循环的过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。
简单一句话:我又想要得到庞大的数据,又想让它占用空间少,那就用生成器!
使用生成器实现简单的生产者消费者模型
1、效果截屏
代码如下:
import time
def consumer(name):
print('%s 开始买手机' %name)
while True:
baozi=yield
print('\033[31;1m手机[%s] 造好了,被[%s] 买了!\033[0m' %(baozi,name))
c = consumer('小明')
c.__next__() # __next__是只唤醒
b1='小米Max 10'
c.send(b1) #send 是唤醒 yield,同时给yield 传入数据。__next__是只唤醒
def producer(name):
c=consumer('A')
c2=consumer('B')
c.__next__()
c2.__next__()
print('开始造手机了')
for i in range(10):
time.sleep(1)
print('\033[32;1m造了2个手机\033[0m')
c.send(i)
c2.send(i)
producer('alex')
来源:https://www.cnblogs.com/km-thonder/p/12577180.html
0
投稿
猜你喜欢
- jQuery 1.4 源码 449 行(core.js 431 行),判断是否为函数的方法如下(思路来源于 Douglas Crockfor
- 本文实例分析了Python字符串和文件操作常用函数。分享给大家供大家参考。具体如下:# -*- coding: UTF-8 -*-'
- 这是我以前发表在经典论坛的帖子,现在转贴回来。仿淘宝网站的导航效果。此方法有几个优点:根据字数自适应项目长度不同的项目使用不同的颜色来区分无
- 前言本文主要给大家介绍了关于Django自定义过滤器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:过滤器与函数d
- 1、何为ansible-playbookplaybook是ansible用于配置,部署,和管理被控节点的剧本,通过playbook的详细描述
- CSV文件简单来说CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗
- 利用线程生成缩略图;读取当前路径下的png文件,在当前路径下生成6464,128128和32*32的缩略图。""&quo
- numpy的log和ln函数每次当我想用python实现ln函数时,下意识的就会输入错误的函数代码,这里特来记录一下关于numpy中的ln和
- 问题一:安装模块时出现报错 Microsoft Visual C++ 14.0 is required,也下载安装了运行库依然还是
- 本文实例讲述了python实现简单socket程序在两台电脑之间传输消息的方法。分享给大家供大家参考。具体分析如下:python开发简单so
- 本文主要介绍Python3.9的一些新特性,如:更快速的进程释放,性能的提升,简便的新字符串函数,字典并集运算符以及更兼容稳定的内部API,
- 一、Node.js实现代码var http = require('http');var util = require(
- 大家好,今天给大家分享一下明哥整理的一篇 Python 参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上 80% 的文
- 说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间。该程序实现了用户的增,删,改,查,主
- 废话不多说,直接上代码吧!import threadingimport osclass Find(threading.Thread): #搜
- 假设有这样一个任务,希望对某个文件夹(包括所有子文件夹与文件)中的所有文件进行处理。这就需要遍历整理目录树, 处理遇到的每个文件。impor
- 前段时间冷空气突袭的时候,据说郊区密云的雪积得挺厚,但北京城内除了飘了一点小雪粒,毫无动静。应该是气温过高所致,我在慈云寺桥附近拍下的照片可
- 目录一,猫狗数据集数目构成二,数据导入三,数据集构建四,模型搭建五,模型训练六,模型测试作为tensorflow初学的大三学生,本次课程作业
- 概率生成问题有一枚不均匀的硬币,要求产生均匀的概率分布有一枚均匀的硬币,要求产生不均匀的概率分布,如 0.25 和 0.75利用 Rand7
- 本文介绍了一些JavaScript常用到得表单验证函数,方便大家使用。 判断是否为整数,是则返回true,否则返回falsefun