多线程线程池简单示例

本文介绍了如何在Python中使用`ThreadPoolExecutor`创建线程池,提交异步任务,并通过`Future`对象获取结果。通过例子展示了线程池的使用以及同步与异步操作的区别。
摘要由CSDN通过智能技术生成
import time
from concurrent.futures import ThreadPoolExecutor

def task(i):
    print(f"任务{i}开始")
    time.sleep(i)
    print(f"任务{i}结束")
    return i

start = time.time()
pool = ThreadPoolExecutor(3)#创建了一个线程池,参数 3 表示线程池中最大可以同时运行的线程数量。

#使用线程池提交了一个任务,任务内容是调用 task 函数并将参数 1 传递给它。
# submit 方法会立即返回一个 Future 对象(在这里赋值给 future01),代表异步执行的任务结果。
# 当 task(1) 在线程池中的某个线程上执行完成后,可以通过调用 future01.result() 获取其返回值。
future01 = pool.submit(task, 1)

#print(“future01是否结束”,future01.done())
# 当程序使用Future的 result()方法来获取结果时,该方法合阳塞当前线程,如果没有指定timeout参数。当前线程将一直处于阻塞状态,直到Future代表的任务返回。
# print("future011的结果", futuree1.result()) #同步等待
future02 = pool.submt(task, 2)#.submt方法来提交线程任务
future03 = pool.submit(task, 3)
pool.shutdown()#阻塞等待
print(f"程序耗时{time.time()-start}秒钟")
print("future01的结果",future01.result())
print("future02的结果",future02.result())
print("future03的结果",future03.result())
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值