1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!coding=utf-8
import multiprocessing
def consumer(pipe):
output_p , input_p = pipe
input_p.close() #关闭管道的输入端
while True:
try:
item = output_p.recv()
except EOFError:
break
print item
print ("consumer done")
#生产项目并将其放到队列上
def producer(sequence, input_p):
for item in sequence:
input_p.send(item)
if __name__ == "__main__":
#创建管道
(output_p , input_p ) = multiprocessing.Pipe()
#启动使用者进程
cons_p = multiprocessing.Process(target=consumer, args=((output_p , input_p ),))
cons_p.start()
#关闭生产者中的输出管道
output_p.close()
#生产项目
sequence = [1,2,3,4]
producer(sequence, input_p)
#关闭输入管道,表示完成
input_p.close()
#等待使用者进行关闭
cons_p.join()
|