671

3 分钟

#Python 的线程池

线程的创建与退出都会带来额外的开销,如果反复创建与销毁线程,程序的性能将会受到影响。

此类场景下通常采取线程复用的方案,即线程退出时并不销毁而是暂停,下次需要创建线程时启动之前暂停的线程运行新的代码。

管理这些线程的对象称作 线程池,在 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

更新于 2025/5/21