Python之多线程编程6,线程池(ThreadPoolExecutor)

Python之多线程编程6,线程池(ThreadPoolExecutor)

线程池是专门用来处理多线程的,当有多任务时,将任务提交至线程池,线程池可内部解决线程问题。

当线程数达到设定的最大值时,线程池内部会进行阻塞,等到其他线程完成后可再增加线程

线程池对象主要有三个方法

submit():将任务提交至线程池,线程池内部进行调度

result():返回某任务的返回值

done():判断某任务是否完成

函数库的导入

#导入函数库
import concurrent.futures import ThreadPoolExecutor
import time

定义方法

def fun(l):
    time.sleep(1)
    print(f"这是第{l}个方法")
    return str(l)

定义主函数

if __name__ == "__main__":
    #创建线程池对象
    executor = ThreadPoolExecutor(max_workers=3)
    #提交任务至线程池
    task1 = executor.submit(fun,1)
    task2 = executor.submit(fun,2)
    #在任务未执行完成时 判断任务是否执行完成
    print(task1.done())
    print(task2.done())
    #时间延长5秒
    time.sleep(5)
    #再次判断任务是否完成,结果为真
    print(task1.done())
    print(task2.done())
    #返回方法执行的结果
    print(task1.result())
    print(task2.result())

运行结果:

在这里插入图片描述

总结:

线程池的执行顺序很重要,一定要牢记。submit的传参第一个为方法名,第二个为该方法对应的参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值