# -*- coding: UTF-8 -*-import multiprocessing
import time
classMultiProcessor:def__init__(self):
manager = multiprocessing.Manager()
self.processor_dict = manager.dict()
self.job_list =[]defadd_processor(self, func, input_dict):
p = multiprocessing.Process(target=func, args=(input_dict, self.processor_dict))
self.job_list.append(p)
p.start()defrun(self):for proc in self.job_list:
proc.join()return self.processor_dict
defadd(d, return_dict):
a = d['a']
b = d['b']
time.sleep(10)
return_dict['add']= a + b
defdict_rs(d, return_dict):
time.sleep(5)
return_dict['rs']= d
if __name__ =='__main__':
s = time.time()
mp = MultiProcessor()
d1 ={'a':1,'b':2}
d2 ={'a':1,'b':{'c':1}}
mp.add_processor(add, d1)
mp.add_processor(dict_rs, d2)
rs = mp.run()
e = time.time()print('run multi process use {}s ,return {}'.format(e - s, rs))# 输出的结果为
run multi process use 10.032155990600586s ,return{'rs':{'a':1,'b':{'c':1}},'add':3}