国际访客建议访问 Primers 编程伙伴 国际服 以获得更好的体验。 快速访问 Python 线程控制 线程池

# Python 的线程池

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

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

管理这些线程的对象称作 线程池,在 Python 中使用 concurrent.futures 模块的 ThreadPoolExecutor 类来创建线程池,它的构造参数是线程的数量。

对于计算密集型任务,通常建议线程数为 CPU 的逻辑核心数,可以通过 os.cpu_count 函数获取。
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-05-31 19:53:12 创建于: 2025-05-31 19:53:12