python多进程concurrent.futures.ProcessPoolExecutor使用方法示例

from datetime import datetime
from time import sleep
from concurrent.futures import ProcessPoolExecutor

# from helper.time_helper import calc_time


# @calc_time
def func1(name='xiaohong', age=18):
    print(u'方法已被调用')
    sleep(2)
    print(f'{name}今年{age}岁...')
    return name


if __name__ == '__main__':
    s_date = datetime.now()
    # 构造任务参数列表
    tasks = [['xiaohong', 12], ['xiaohuang', 13], ['xiaolv', 14]]
    with ProcessPoolExecutor(max_workers=5) as pool:
        # 如果需要传参,直接将参数列表放在pool.submit()方法第二、三个参数,往后排就好,submit接收多个参数,*args和**kwargs
        results = [pool.submit(func1, tasks[i][0], tasks[i][1]) for i in range(len(tasks))]
        # print(results)
        # print(type(results))
        # print(help(results))
        for res in results:
            # 获取多任务执行的函数的返回结果
            print(res.result())
            print(res.done())
    f_date = datetime.now()
    print(f'多任务耗时:{f_date - s_date}')

简单明了,一看就懂

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值