约 676 字

约 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/6/8

作者: PlanC

创建: 2025/5/13