本文主要是介绍在python中实现生产者和消费者的例子(一):使用multiprocessing和pipe(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文介绍如何用multiprocessing模块及pipe实现生产者和消费者的例子
代码实例如下:
import multiprocessing
def consumer(pipe):
output_p,input_p=pipe
input_p.close()
while True:
try:
item=output_p.recv()
except EOFError:
#只有在生产者和消费者都关闭管道中相同的端点时,才会产生EOFError
break
print(item)
print('Consumer done')
#定义生产者
def producer(sequence,input_p):
input_p.send(sequence)
(output_p,input_p)=multiprocessing.Pipe()
#建立消费者进程并启动
cons_p=multiprocessing.Process(target=consumer,args=((output_p,input_p),))
cons_p.start()
#在生产者中关闭输出管道
output_p.close()
a=0while True:
a=a+1
producer(a,input_p)
#在生产者中关闭输入管道,这是会产生EOFError,使消费者进程结束
input_p.close()
#让主进程等待使用者进程关闭
cons_p.join()
管道是由操作系统进行引用计数的,必须所有进程中关闭管道后才能生成EOFError异常。
这篇关于在python中实现生产者和消费者的例子(一):使用multiprocessing和pipe()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!