首页 > 编程语言 > 详细

python多进程使用函数封装

时间:2018-08-05 19:33:12      阅读:188      评论:0      收藏:0      [点我收藏+]
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 方法即可


python多进程使用函数封装

原文:http://blog.51cto.com/chenxiaolong/2154985

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!