码迷,mamicode.com
首页 > 编程语言 > 详细

python多进程使用函数封装

时间:2018-08-05 19:35:39      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:sys   append   python   children   执行   super   字段   elf   方法   

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多进程使用函数封装

标签:sys   append   python   children   执行   super   字段   elf   方法   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!