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())
多线程线程池简单示例
最新推荐文章于 2024-08-30 12:42:13 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)