import concurrent.futures
import time
# 定义一个简单的任务函数
def 简单任务(编号):
print(f"任务 {编号} 开始执行")
time.sleep(1) # 模拟任务耗时操作
print(f"任务 {编号} 执行完成")
return 编号
# 创建一个包含3个线程的线程池
executor = concurrent.futures.ThreadPoolExecutor(max_workers=3)
# 提交多个任务到线程池
futures = []
for i in range(1, 6):
future = executor.submit(简单任务, i) # 提交任务
futures.append(future) # 将 future 对象保存到列表中
# 关闭线程池,不再接受新的任务
executor.shutdown(wait=True)
# 获取并打印每个任务的结果
for future in futures:
结果 = future.result() # 获取任务的结果
print(f"任务结果: {结果}")
print("所有任务执行完成")
在这个分开的示例中:
- 定义了一个名为
简单任务
的函数,模拟一个简单的耗时操作。 - 使用
ThreadPoolExecutor
创建一个最大工作线程数为3的线程池。 - 使用
executor.submit
方法将多个任务提交到线程池,并将每个任务的future
对象保存到列表中。 - 使用
executor.shutdown(wait=True)
方法关闭线程池,等待所有任务完成。 - 逐个获取并打印每个任务的执行结果。