python多进程使用函数封装
admin
2023-07-23 08:02:40
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 方法即可


相关内容

热门资讯

村民被控抢建700平房屋获拆迁... 澎湃新闻记者 陈绪厚江西南昌红谷滩区的李某根2016年签署拆迁补偿协议。2025年,李某根因此事被警...
伊朗议长:黎巴嫩停火与伊朗停火... △伊朗议会议长卡利巴夫(资料图)伊朗议会议长卡利巴夫当地时间24日表示,地区安全必须由地区国家自身来...
沈伯洋称“台北要向台南学”,蓝... 海峡导报综合报道 民进党台北市长参选人沈伯洋23日参加台北市大台南同乡会核心干部座谈会,提出台北要向...
云南夫妻吃菌中毒擅自离开医院后... 近日,昆明市公安局特巡警支队四大队接到一位市民报警称,自己妹妹、妹夫吃菌中毒行为异常,怕120急救人...
梅洛尼与特朗普突然“翻脸”后,... 【环球网报道】美国总统特朗普日前在接受采访时称意大利总理梅洛尼在七国集团(G7)峰会期间“央求合影”...
上财校长寄语毕业生:避免活成一... 澎湃新闻资深记者 邹桥“AI时代最危险的,不是机器越来越聪明,而是人越来越习惯于把自己的判断拱手相让...
欧洲遭遇“更早、更久、更难解”... 澎湃新闻首席记者 刘栋当地时间2026年6月23日,英国伦敦,一名民众坐在公园的阴凉处。视觉中国 图...
江苏省最新平均工资出炉 【大河财立方消息】6月24日,江苏省统计局发布2025年全省城镇单位就业人员年平均工资数据。统计显示...
活力中国调研行|雄安“村”里故... 【大河财立方 记者 陈诗昂 文 王子阳 摄影 雄安新区报道】 到8月底,雄安新区中关村科技园开园就将...
涉及零食、饮料等 37批次食品... 【大河财立方消息】6月23日,市场监管总局办公厅通报37批次食品抽检不合格情况。近期,市场监管总局组...