Python--day38---进程间通信--初识队列(multiprocess.Queue)之生产者,消费者模型
2024-09-06 15:54:16
1,生产者消费者模型.py
import random
import time
from multiprocessing import Queue, Process def producer(name,food,q):
for i in range(4):
time.sleep(random.randint(1,3))
f = '%s生产了%s%s'%(name,food,i)
print(f)
q.put(f) def consumer(q,name):
while True:
food = q.get()
if food is None:
print('%s获取到了一个空',name)
break
print('\033[31m%s消费了%s\033[0m' %(name,food))
time.sleep(random.randint(1,3)) if __name__ == '__main__':
q = Queue(20)
p1 = Process(target=producer,args=('Egon','包子',q))
p2 = Process(target=producer,args=('wusir','泔水',q))
c1 = Process(target=consumer,args=(q,'alex'))
c2 = Process(target=consumer,args=(q,'jinboss'))
p1.start()
p2.start()
c1.start()
c2.start()
p1.join()
p2.join()
q.put(None)
运行结果:
最新文章
- Angular2入门系列教程3-多个组件,主从关系
- js实现图片预加载
- web 打开子窗口提交数据或其他操作后 关闭子窗口且刷新父窗口实现
- Javaee----重新回顾servlet
- Linux Shell脚本攻略 读书笔记
- 对话Facebook人工智能实验室主任、深度学习专家Yann LeCun
- debug openStack
- 关于PsCreateSystemThread函数
- 深度神经网络(DNN)模型与前向传播算法
- Flask 应用上下文
- BZOJ 2810 [Apio2012]kunai
- oracle 之 伪列 rownum 和 rowid的用法与区别
- Perl 随机数据生成
- 【原】Github+Hexo+NextT搭建个人博客【1】
- error: pathspec 'master' did not match any file(s) known to git.
- [EffectiveC++]item45:运用成员函数模板接受所有兼容类型
- Java导出引用jar包的文件
- ITL(Interested Transaction List)理解
- Quick 3.3 final 加载ccs的变化
- hive2.1.1配置