python 进程通信 延时_Python-----进程通信队列

生产者消费者模型

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

生产者: 生产数据进程.

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

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

为什么夹杂这个容器?

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

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

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()

生产者消费者模型:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值