首页 > 解决方案 > 运行 python 并行进程

问题描述

我有 20 多个需要执行的独立脚本我不知道我可以并行执行多少个进程作为一个好习惯:

import os
import glob
from multiprocessing import Pool

processos = (
    'p1.py',
    'p2.py',
    'p3.py',
    'p4.py',
    'p5.py',
    'p6.py',
    'p7.py',
    'p8.py',
    'p9.py',
    'p10.py',
    'p11.py',
    'p12.py',
    'p13.py',
    'p14.py',
    'p15.py',
    'p16.py',
    'p17.py',
    'p18.py',
    'p19.py',
    'p20.py',
    'p21.py',
    'p22.py',
    'p23.py',
    'p24.py'
)
def roda_processo(processo):                                                            
    os.system('python {}'.format(processo))


pool = Pool(processes=24)                                                        
pool.map(roda_processo, processos)

您想知道运行这些脚本的最有效方法吗?

详细信息:这些进程将按计划运行。

标签: pythonpython-3.xmultithreading

解决方案


为什么不使用外壳?

seq 1 24 | xargs -L1 -I{} -P`nproc` python p{}.py

 -P maxprocs
         Parallel mode: run at most maxprocs invocations of utility at
         once.

 nproc
          print the number of processing units available

推荐阅读