是的,可以对多个进程进行这种求和,非常类似于对多个线程执行此求和:
from multiprocessing import Process, Queuedef do_sum(q,l): q.put(sum(l))def main(): my_list = range(1000000) q = Queue() p1 = Process(target=do_sum, args=(q,my_list[:500000])) p2 = Process(target=do_sum, args=(q,my_list[500000:])) p1.start() p2.start() r1 = q.get() r2 = q.get() print r1+r2if __name__=='__main__': main()
但是,与在单个进程中进行处理相比,在多个进程中进行处理的速度可能会更慢,因为来回复制数据要比立即求和更为昂贵。



