如何获取ProcessPoolExecutor中可用的工作进程数量?
获取ProcessPoolExecutor的可用工作进程数量
你可以通过以下几种方式获取相关进程数量:
- 获取初始化时设置的总工作进程数
直接访问ProcessPoolExecutor实例的_max_workers属性,它存储了你创建池时指定的进程数量(比如你代码里的10):
import concurrent.futures pool = concurrent.futures.ProcessPoolExecutor(10) print(pool._max_workers) # 输出 10
- 获取当前活跃的工作进程数
通过pool._processes字典的长度,可以得到当前正在运行的进程数量:
active_process_num = len(pool._processes) print(f"当前活跃进程数: {active_process_num}")
- 更稳妥的自定义存储方式
由于带下划线的属性属于标准库内部实现细节,后续版本可能存在变更风险,你也可以在初始化时自行保存进程数:
worker_count = 10 pool = concurrent.futures.ProcessPoolExecutor(worker_count) # 后续直接使用 worker_count 变量即可获取设置的进程数
内容的提问来源于stack exchange,提问作者nz_21
相关产品推荐
相关产品推荐

