生产者消费者模型

模型, 设计模式,归一化设计, 理论等等,教给你一个编程思路.如果以后遇到类似的情况,直接套用即可.

生产者: 生产数据进程.

消费者: 对生产者生产出来的数据做进一步处理进程.

吃饭: 吃包子. 厨师生产出包子,不可能直接给到你嘴里. 放在一个盆中,消费者从盆中取出包子食用.三个主体 : (生产者)厨师, (容器队列)盆, (消费者)人.

为什么夹杂这个容器?

如果没有容器, 生产者与消费者强耦合性.不合理.所以我们要有一个容器,缓冲区.平衡了生产力与消费力.

生产者消费者多应用于并发.

from multiprocessing import Process

from multiprocessing import Queue

import time

import random

def producer(name,q):

for i in range(1,6):

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

res = f'{i}号包子'

q.put(res)

print(f'\033[0;32m 生产者{name}: 生产了{res}\033[0m')

def consumer(name,q):

while 1:

try:

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

ret = q.get(timeout=5)

print(f'消费者{name}: 吃了{ret}')

except Exception:

return

if __name__ == '__main__':

q = Queue()

p1 = Process(target=producer, args=('太白',q))

p2 = Process(target=consumer, args=('MC骚强',q))

p1.start()

p2.start()

生产者消费者模型:

合理的去调控多个进程去生成数据以及提取数据,中间有个必不可少的环节容器队列.

python 进程通信 延时_Python-----进程通信队列相关推荐

  1. python进程间通信时间开销_python 进程间的通信

    python3,进程间的通信 本文来源于python 3.5版本的官方文档 multiprocessing模块为进程间通信提供了两种方法: 1.进程队列queue The Queue class is ...

  2. python线程间数据共享_python 进程间数据共享multiProcess.Manger实现解析

    一.进程之间的数据共享 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据. 这样极大地减少了对使用锁定和其他同步手段的需求, ...

  3. python多进程线程学习_python进程、线程的学习心得

    什么是多线程竞争? 线程不是独立的,同一个进程里的线程,线程间的数据是共享的,多线程操作时,容易造成数据的混乱,线程不安全. 如何解决? 互斥锁. 好处:能够保证某段关键代码执行时,只有一个线程操作, ...

  4. python多线程数据交互_python 多线程 通信

    一篇文章搞定Python多进程(全) 公众号:pythonislover 前面写了三篇关于python多线程的文章,大概概况了多线程使用中的方法,文章链接如下: 一篇文章搞懂Python多线程简单实现 ...

  5. python创建进程的方法_python进程的状态、创建及使用方法详解

    本文实例讲述了python进程的状态.创建及使用方法.分享给大家供大家参考,具体如下: 进程以及状态 1. 进程 程序:例如xxx.py这是程序,是一个静态的 进程:一个程序运行起来后,代码+用到的资 ...

  6. python 协程、进程、线程_Python进程、线程、协程之间的关系

    一.从操作系统角度 操作系统处理任务, 调度单位是 进程 和 线程 . 1.进程: 表示一个程序的执行活动 (打开程序.读写程序数据.关闭程序) 2.线程: 执行某个程序时, 该进程调度的最小执行单位 ...

  7. python 进程池不足_python 进程池pool简单使用

    平常会经常用到多进程,可以用进程池pool来进行自动控制进程,下面介绍一下pool的简单使用. 需要主动是,在Windows上要想使用进程模块,就必须把有关进程的代码写if __name__ == ' ...

  8. python 异步 生产者 消费者_python 线程通信 生产者与消费者

    1 """ 2 线程通信的生产者与消费者3 python的queue模块中提供了同步的线程安全的队列类,都具有原子性,实现线程间的同步4 Queue (FIFO: fis ...

  9. python跨文件全局变量_Python 进程之间共享数据(全局变量)的方法

    进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...

最新文章

  1. java list wordcount,初试spark java WordCount
  2. Silverlight MMORPG团队项目截图
  3. mysql中json_merge函数的使用?
  4. 教表弟用Python写了个“飞机大战”游戏!表弟:可以拜你为师吗?
  5. BASIC-10 十进制转十六进制
  6. HDU-5895 Mathematician QSC
  7. 对象复制语意学(Object Copy Semantics)
  8. phython在file同时写入两个_Python实现读取excel写入mysql的小工具详解
  9. 计算机网络技术教研活动,(2012.09.27)计算机网络技术专业教研活动(文本).doc...
  10. 英文期刊论文翻译格式要求和文献要求
  11. 浅析城市道路照明的安全及节电设备的应用
  12. 颜色拾取器和红蜻蜓截图
  13. C语言实现定积分的计算
  14. 老鸟程序员才知道的一些事
  15. 方便的视频播放器-饺子播放器
  16. Linux(Ubuntu)下WiFi网卡(intel ax201)驱动与Nvidia显卡驱动冲突的解决办法
  17. 工控领域为什么需要OPC,OPC是什么?
  18. Fitbit被谷歌21亿美元收购 品牌启用英文域名Fitbit.com
  19. 模拟病人排队看病过程c语言,模拟病人到医院排队看病上机内容完整实验报告.doc...
  20. HTML基础教程笔记

热门文章

  1. java10 WeakHashMap
  2. 10个精妙的Java编码最佳实践
  3. 设计模式(六)---- 策略模式
  4. NPOI设置Excel中的单元格识别为日期
  5. Change Jenkins time zone
  6. 删除ELK中的数据。。
  7. POJ 1845 Sumdiv 【逆元】
  8. nginx 配置虚拟主机
  9. jQuery源码分析系列:.domManip() .buildFragment() .clean()
  10. html5 乱码解决方案