python多进程传值获取返回值极简教程

本文介绍了一种使用Python的multiprocessing模块实现多进程并行处理的方法。通过创建多进程并行执行不同任务,有效利用多核CPU资源,显著提高了程序的运行效率。示例中包括了两个并行任务:数值相加和字典返回,展示了如何管理和收集子进程的返回结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现代码

# -*- coding: UTF-8 -*-

import multiprocessing
import time


class MultiProcessor:
    def __init__(self):
        manager = multiprocessing.Manager()
        self.processor_dict = manager.dict()
        self.job_list = []

    def add_processor(self, func, input_dict):
        p = multiprocessing.Process(target=func, args=(input_dict, self.processor_dict))
        self.job_list.append(p)
        p.start()

    def run(self):
        for proc in self.job_list:
            proc.join()
        return self.processor_dict


def add(d, return_dict):
    a = d['a']
    b = d['b']
    time.sleep(10)
    return_dict['add'] = a + b


def dict_rs(d, return_dict):
    time.sleep(5)
    return_dict['rs'] = d


if __name__ == '__main__':
    s = time.time()
    mp = MultiProcessor()
    d1 = {'a': 1, 'b': 2}
    d2 = {'a': 1, 'b': {'c': 1}}
    mp.add_processor(add, d1)
    mp.add_processor(dict_rs, d2)
    rs = mp.run()
    e = time.time()
    print('run multi process use {}s ,return {}'.format(e - s, rs))
	# 输出的结果为
	run multi process use 10.032155990600586s ,return {'rs': {'a': 1, 'b': {'c': 1}}, 'add': 3}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值