Python中的生产者消费者模型,在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题,是本章的重点内容,下面我们一起来看看吧。

生产者消费者模型

在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。

什么是生产者消费者模式

生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据(做包子的)之后不用等待消费者(吃包子的)处理,直接扔给阻塞队列(盘子),消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。

为什么要使用生产者和消费者模式

在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这个问题于是引入了生产者和消费者模式。

基于队列实现生产者消费者模型

from multiprocessing import Process,Queueimport time,random,osdefconsumer(q): while True:

res=q.get()

time.sleep(random.randint(1,3))

print('%s 吃 %s' %(os.getpid(),res))defproducer(q): for i in range(10):

time.sleep(random.randint(1,3))

res='包子%s' %i

q.put(res)

print('%s 生产了 %s' %(os.getpid(),res))if __name__ == '__main__':

q=Queue()

#生产者们:即厨师们 p1=Process(target=producer,args=(q,))

#消费者们:即吃货们 c1=Process(target=consumer,args=(q,))

#开始 p1.start()

c1.start()

print('主')

python生产教程_python入门教程12-09 (python语法入门之生产者消费者模型)相关推荐

  1. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

  2. Python之路(第三十八篇) 并发编程:进程同步锁/互斥锁、信号量、事件、队列、生产者消费者模型...

    一.进程锁(同步锁/互斥锁) 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的, 而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理. 例 ...

  3. python多线程实现生产者消费者_用Python实现多线程“生产者-消费者”模型的简单例子...

    用 Python 实现多线程"生产者 - 消费者"模型的简单例子 生产者消费者问题是一个著名的线程同步问题, 该问题描述如下: 有一个生产者在生产产品, 这些产品将提供给若干个消费 ...

  4. 4月25日 python学习总结 互斥锁 IPC通信 和 生产者消费者模型

    一.守护进程 import random import time from multiprocessing import Processdef task():print('name: egon')ti ...

  5. Python并行编程(四):多线程同步之condition(条件变量)实现带有缓冲区的生产者-消费者模型...

    什么是Condtion? 所谓condition条件变量,即这种机制是在满足了特定的条件后,线程才可以访问相关的数据. 这种同步机制就是一个线程等待特定的条件,另一个线程通知它条件已经发生.一旦条件发 ...

  6. python—生产者消费者模型

    python-生产者消费者模型 生产者和消费者模式是多线程开发中经常见到的一种模式.生产者的线程专门用来生产一些数据,然后存放到一个中间的变量中.消费者再从这个中间的变量中取出数据进行消费.通过生产者 ...

  7. python之生产者消费者模型

    python之生产者消费者模型 生产者消费者模型作用于: 1.爬虫的时候 2.分布式操作:celery 其本质:就是让生产数据和消费数据的效率达到平衡并且最大化的效率 为什么要使用生产者消费者模型? ...

  8. Python 生产者消费者模型

    Python 生产者消费者模型 文章目录 Python 生产者消费者模型 生产者消费者模型介绍 生产者消费者模型实现 函数yield 方式 多进程方式 实现一. 实现二. 多线程方式 生产者消费者模型 ...

  9. python 全栈开发,Day39(进程同步控制(锁,信号量,事件),进程间通信(队列,生产者消费者模型))...

    昨日内容回顾 python中启动子进程 并发编程 并发 :多段程序看起来是同时运行的 ftp 网盘 不支持并发 socketserver 多进程 并发 异步 两个进程 分别做不同的事情 创建新进程 j ...

最新文章

  1. Python 图片亮度
  2. js字符串的各种格式的转换 ToString,Format
  3. yolov3之pytorch源码解析_springmvc源码架构解析之view
  4. 阿里云 Serverless Kubernetes 的落地实践分享
  5. [PHP]基本排序(冒泡排序、快速排序、选择排序、插入排序、二分法排序)
  6. 网络安全笔记-信息安全工程师与网络安全工程师考试大纲(附:Web安全大纲)
  7. 一阶惯性加纯滞后模型matlab代码,一种镇定一阶惯性加纯滞后系统的线性自抗扰控制器设计方法与流程...
  8. html导航栏纵向代码,html横向导航栏怎么做?横向导航条代码实例
  9. 用计算机谈我还是从前那个少年,我还是从前那个少年是什么歌-我还是从前那个少年抖音歌曲介绍...
  10. 名人博客VS 博客名人
  11. 芯片尺寸越做越小,晶圆划片刀的选择至关重要
  12. 理想边界尺寸怎么算_GDamp;T 几何尺寸和公差 | ASME14.52018标准弄错了吗?
  13. CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark
  14. 简述基于CPU的机器码运行过程
  15. 【MATLAB】机器学习:决策树算法实验
  16. Vue+SpringBoot+ElementUI实战学生管理系统-10.学生管理模块
  17. 我们是如何将一个项目做烂的
  18. 初学搜索之关键字选择
  19. 客户关系管理的很好的例子
  20. Porter Algorithm ---------词干提取算法

热门文章

  1. 06-自定义构造方法
  2. Perl opendir()函数
  3. 关于getResource(/)的读取路径问题
  4. vml入门教程 【转】
  5. Python+sklearn使用支持向量机算法实现数字图片分类
  6. php获取时间格式的年份,PHP获取当前时间、时间戳的各种格式写法汇总
  7. # 定义四边形_对特殊平行四边形核心梳理,拓展提升思维
  8. python 链表操作 优化_python---单链表的常用操作
  9. Java 的 Comparator 接口详解
  10. 蠕虫病毒往往是通过进入计算机系统,2012年甘肃省三职生计算机考试题