专栏首页python3python多进程使用函数封装

python多进程使用函数封装

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 方法即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • bs4爬虫实战一:获取百度贴吧内容

    进入百度贴吧,访问: https://tieba.baidu.com/index.html

    用户2398817
  • python实现一个简易hashmap

    近日把数据结构翻出来看看,发现自己这方面的知识很欠缺,算是自己的记录,也希望给正在学习数据结构的老铁们分享,共同学习。。。

    用户2398817
  • [python] 解决OSError:

    用python http.sever实现web服务时,绑定端口由于强制退出导致再次启动服务报错: self.socket.bind(self.server_ad...

    用户2398817
  • kvo深入浅出举例

    一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对...

    用户1219438
  • 一文了解 Python 的 “Magic” 方法

    在以前的文章中,我聊过了Python的 __getitem__ 和 __setitem__ 方法。这些方法被称为“魔法”方法、特殊方法或者dunger方法(译者...

    AI研习社
  • 一文了解 Python 的 “Magic” 方法

    原标题 :Python magic methods or special methods

    崔庆才
  • bs4爬虫实战一:获取百度贴吧内容

    进入百度贴吧,访问: https://tieba.baidu.com/index.html

    用户2398817
  • python 写window服务

    import win32serviceutil import win32service import win32event import os impo...

    用户5760343
  • PHP中的函数

    函数调用 function sum($x,$y) //形参:在声明函数时声明的参数 { // $x = 1; //如果在函数内对参数赋值,则会覆盖实参。...

    wangxl
  • 11 Python 基础: 知识巩固,实现一个简易学生管理系统

    首先,我们定义了一个LoginModule类,此为登录模块,主要功能就是定义账号属性【用户名,密码】,然后定义一个登录login方法实现验证用户名和密码是否正确...

    小Gy

扫码关注云+社区

领取腾讯云代金券