Python 多进程通信如何合理的使用管道?
伪代码如下:
cons_p1 = multiprocessing.Process(target=consumer,args=((output_p,input_p),1))
cons_p1.start()
cons_p2 = multiprocessing.Process(target=consumer,args=((output_p,input_p),1))
cons_p2.start()
以上2个消费者分别在两个进程中执行,等待 数据:
while True:
try:
item = output_p.recv() # 等待数据
except EOFError:
break
print("%s消费:%s" % (id,item))
生产者再主进程 生产数据,并发送给管道:
input_p.send(item)
问题: 目前程序运行结果,如果消费的速度慢一些,两个进程可以正常从管道获得数据。逐一消费。
如果消费速度快了。则某个进程 会 EOFError 退出。
请问如何能在多进程程序中,合理的共用管道?或者正确的姿势是什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你这样做不妥吧,一般只能是一个进程写,一个进程读。而你是一个写,两个读。狼多肉少啊老哥。