Python进程池回调

本文介绍了如何使用Python的multiprocessing模块创建进程池,并展示了在工作进程发生错误或正常结束时如何通过回调函数进行处理,包括使用`partial`函数来传递参数给回调和错误处理函数。

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

进程池在进程 发生错误/正常结束时,回调

import multiprocessing, time
from functools import partial

def worker(i):
    print(f"Worker process {i} started")
    if i == 5:
        raise Exception(f'{i} error occured(自定义异常)')
    time.sleep(5)  # 模拟一些工作

def call_back_with_args(unknown_args, p):
    print('call_back p:', p, unknown_args)

def error_callback(e):
    print('error_callback : ', type(e), e)

if __name__ == '__main__':
    with multiprocessing.Pool(processes=6) as pool:
        for i in range(6):
            pool.apply_async(worker, args=(i,),
                             callback=partial(call_back_with_args, p=i),
                             error_callback=error_callback)

        pool.close()  # 关闭进程池,不再接受新的任务
        # time.sleep(2)
        # pool.terminate()  # 停止进程池中的所有工作进程,但不等待它们完成
        pool.join()

partial科普

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值