python补充之multiprocessing(二)Queue的使用

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

过程一目了然。

至此就结束了,希望对大家有帮助!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值