python - 运行 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)
您想知道运行这些脚本的最有效方法吗?
详细信息:这些进程将按计划运行。
解决方案
为什么不使用外壳?
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
推荐阅读
- django-2.1 - 在 Django2.1 中创建 CreatingUserField、created_date、updated_by 和 updated_date 的替代方法
- javascript - 如何获取对象数组而不是数组数组
- bash - 用给定的字符串替换行的子字符串
- angular - 如何将组件选择器标记为已弃用?
- liquibase - liquibase.exception.DatabaseException:数据库中已经有一个名为“xxxx”的对象
- makefile - 需要在 Makefile 中灵活定义目标依赖项
- javascript - 我怎样才能不延迟加载以前由浏览器缓存的图像?
- android - Ionic/Cordova 和 Android 64 位要求
- java - 以下选项有什么区别(@Service、@Bean 或静态方法)
- python - Pandas - 比较列并在它们不匹配时返回 False 并且当其中一列显示“未找到列”时