python线程池范例ThreadPoolExecutor

本文介绍了如何使用Python的concurrent.futures模块中的ThreadPoolExecutor来实现五任务的并行执行,通过submit方法提交任务并利用as_completed监控任务完成,同时展示了map方法的应用,展示了如何在多线程环境中提高代码效率。
摘要由CSDN通过智能技术生成

import os
from concurrent.futures import ThreadPoolExecutor,as_completed


def func(arg):
    return arg


# 五任务三线程示例
arg = " "

# submit用法,命名各个任务,用result()获得其返回值
with ThreadPoolExecutor(max_workers=3) as executor:
    t_list = []
    for i in range(5):
        t = executor.submit(func, arg)
        t_list.append(t)
    # t_list = [executor.submit(func, arg) for i in range(5)]  #推导式
    # as_completed() 方法是一个生成器,在没有任务完成的时候,会一直阻塞,除非设置了 timeout,一旦有一个任务完成,就会返回结果,其他没有完成的任务继续阻塞。
    for t in as_completed(t_list):
        t.result()  #返回值

# map用法,map函数生成一个迭代器,用for循环获取值
with ThreadPoolExecutor(max_workers=6) as executor:
    results = executor.map(func, [arg, arg, arg, arg, arg])
    for result in results:
        print(result)

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值