发布时间:2019-09-01 09:51:46编辑:auto阅读(1883)
import multiprocessing as mp from multiprocessing import Process class MyProcess(Process): """ 自定义多进程,继承自原生Process,目的是获取多进程结果到queue """ def __init__(self, func, args, q): super(MyProcess, self).__init__() self.func = func self.args = args self.res = '' self.q = q #self._daemonic = True #self._daemonic = True def run(self): self.res = self.func(*self.args) self.q.put((self.func.__name__, self.res)) def use_multiprocessing(func_list): #os.system('export PYTHONOPTIMIZE=1') # 解决 daemonic processes are not allowed to have children 问题 q = mp.Queue() # 队列,将多进程结果存入这里,进程间共享, 多进程必须使用 multiprocessing 的queue proc_list = [] res = [] for func in func_list: proc = MyProcess(func['func'], args=func['args'], q=q) proc.start() proc_list.append(proc) for p in proc_list: p.join() while not q.empty(): r = q.get() res.append(r) return res 使用时候,将需要多进程执行的函数和函数的参数当作字段,组成个list 传给use_multiprocessing 方法即可
上一篇: 3G和W-CDMA的区别
下一篇: 案例:用python实现翻译小程序
48878
47949
38729
35870
30294
27054
26080
20912
20722
19081
536°
624°
625°
634°
606°
587°
660°
728°
852°
964°