python进程池的简单使用

  1. 进程池存在,multiprocessing模块中.
  2. multiprocessing.Pool(processes=4)指定创建进程的个数。
  3. pool.apply_async 异步执行任务.
  4. callback的参数是,任务执行的返回值。
  5. error_callback,的参数是执行的错误信息。
import multiprocessing
import time


def task_1(name, age):
    time.sleep(3)
    # print(1 / 0)
    print('name:', name, 'age:', age, '\n')
    print('执行task1', '\n')
    return '返回值'


def task_1_call_back(args):
    print('task_1_call_back:', args, '\n')


def task1_error_callback(args):
    print('test_error_callback:', args, '\n')


if __name__ == '__main__':
    """pool不能再外面,否则会报错"""
    """task_1_call_back 的参数就是 task 执行的返回值"""
    """task1_error_callback 的参数就是 task 执行错误的信息"""
    pool = multiprocessing.Pool(4)
    t = pool.apply_async(func=task_1,
                         args=('name', 'age'),
                         callback=task_1_call_back,
                         error_callback=task1_error_callback)
    pool.close()
    pool.join()

方法二:

import multiprocessing
import time


def test_run():
    print('test_run....')
    time.sleep(3)
    return 'success'


def test_run_cal_back(args):
    print('test_run_cal_back....', args)


class ProcessAsnyc(multiprocessing.Process):
    def __init__(self, *args, action=None):
        super(ProcessAsnyc, self).__init__()
        self.args = args
        self.action = action

    def run(self):
        """
        开始执行导出动作
        :return:
        """
        if len(self.args) > 0:
            self.action(self.args)
        else:
            self.action()


if __name__ == '__main__':
    process = ProcessAsnyc(action=test_run)
    process.start()
    process.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永不止步——

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值