python补充之multiprocessing(二)Queue的使用
在进程中的函数不能有返回值,如果需要返回值,需要使用Queue来暂时保存返回值,等进程结束后再统一取出。
Queue的存储就像是一个盒子,一个一个摆上返回值,取的时候会从第一个开始,一个一个取出。
编号以下代码:
路径:
/home/pi/Desktop/My_Project/TEXT/3_MultiprocessingLearning.py
代码:
import multiprocessing as mp
def job(q,a):
res=0
for i in range(20):
res+=i
q.put(res+a)#queue #将返回值存入queue中
if __name__=='__main__':
q=mp.Queue() #在进程开始前定义Queue
p1=mp.Process(target=job,args=(q,1))
p2=mp.Process(target=job,args=(q,2))
p1.start()
p2.start()
p1.join()
p2.join()
res1=q.get()
res2=q.get()
print(res1) #逐个取出
print(res2)
print(res1+res2)
在终端中:
pi@raspberrypi:~ $ cd /home/pi/Desktop/My_Project/TEXT
pi@raspberrypi:~/Desktop/My_Project/TEXT $ python3 3_MultiprocessingLearning.py
结果:
191
192
383
过程一目了然。
至此就结束了,希望对大家有帮助!