约 689 字
约 3 分钟
线程的创建与退出都会带来额外的开销,如果反复创建与销毁线程,程序的性能将会受到影响。
此类场景下通常采取线程复用的方案,即线程退出时并不销毁而是暂停,下次需要创建线程时启动之前暂停的线程运行新的代码。
管理这些线程的对象称作 线程池,在 Python 中使用 concurrent.futures
模块的 ThreadPoolExecutor
类来创建线程池,它的构造参数是线程的数量。
from concurrent.futures import ThreadPoolExecutor
import time
def task(name):
print(f"任务 {name} 开始")
time.sleep(2)
return f"任务 {name} 完成"
# 创建包含4个线程的线程池
with ThreadPoolExecutor(max_workers=4) as executor:
# 给线程池分配任务
futures = [executor.submit(task, i) for i in range(10)]
for future in futures:
print(future.result()) # 按完成顺序获取结果
创建于 2025/5/13 15:56:35
更新于 2025/5/13 15:56:35