Multiprocessing多进程 (总结)

深藏阁楼爱情的钟 2023-06-26 12:08 121阅读 0赞

Multiprocessing多进程 (总结)

Queue的功能是将每个核或线程的运算结果放在队里中, 等到每个线程或核运行完毕后再从队列中取出结果, 继续加载运算。原因很简单, 多线程调用的函数不能有返回值, 所以使用Queue存储多个线程运算的结果

代码

  1. import multiprocessing as mp
  2. def job(q):
  3. res=0
  4. for i in range(1000):
  5. res+=i+i**2+i**3
  6. q.put(res) #queue
  7. if __name__=='__main__':
  8. q = mp.Queue()
  9. p1 = mp.Process(target=job,args=(q,))
  10. p2 = mp.Process(target=job,args=(q,))
  11. p1.start()
  12. p2.start()
  13. p1.join()
  14. p2.join()
  15. res1 = q.get()
  16. res2 = q.get()
  17. print(res1+res2)

运行结果

  1. 499667166000

代码解释说明:

1、 可以同时使用q = mp.Queue(),q2 = mp.Queue(),两个队列不会冲突和干扰
2、 队列使用put()放入数据,放入的数据可以是 数字、字符、数组等
3、 队列放入的数据,不使用get()的取出的话就一直存放在队列中,取出之后,不会再有。先进先出,先进后出请再查阅相关资料。
4、

发表评论

表情:
评论列表 (有 0 条评论,121人围观)

还没有评论,来说两句吧...

相关阅读