Multiprocessing多进程 (总结)
Multiprocessing多进程 (总结)
Queue的功能是将每个核或线程的运算结果放在队里中, 等到每个线程或核运行完毕后再从队列中取出结果, 继续加载运算。原因很简单, 多线程调用的函数不能有返回值, 所以使用Queue存储多个线程运算的结果
代码
import multiprocessing as mp
def job(q):
res=0
for i in range(1000):
res+=i+i**2+i**3
q.put(res) #queue
if __name__=='__main__':
q = mp.Queue()
p1 = mp.Process(target=job,args=(q,))
p2 = mp.Process(target=job,args=(q,))
p1.start()
p2.start()
p1.join()
p2.join()
res1 = q.get()
res2 = q.get()
print(res1+res2)
运行结果
499667166000
代码解释说明:
1、 可以同时使用q = mp.Queue(),q2 = mp.Queue()
,两个队列不会冲突和干扰
2、 队列使用put()
放入数据,放入的数据可以是 数字、字符、数组等
3、 队列放入的数据,不使用get()
的取出的话就一直存放在队列中,取出之后,不会再有。先进先出,先进后出请再查阅相关资料。
4、
还没有评论,来说两句吧...