我有一个需要执行的进程池。我想充分利用机器,让所有的 CPU 都在执行进程。我不想过度订阅系统,所以我真正想要的是在任何给定时刻#executing_processes=#cpus。我还需要存储每个已完成进程的标准输出、标准错误和返回码。如何在 Python 中实现这一点?
编辑:“进程”是指外壳进程。
我有一个需要执行的进程池。我想充分利用机器,让所有的 CPU 都在执行进程。我不想过度订阅系统,所以我真正想要的是在任何给定时刻#executing_processes=#cpus。我还需要存储每个已完成进程的标准输出、标准错误和返回码。如何在 Python 中实现这一点?
编辑:“进程”是指外壳进程。
如果您谈论的是您自己的 Python 实现的流程:
该multiprocessing
模块使您能够生成多个进程。特别是,听起来您可能想要创建multiprocessing.cpu_count个进程,可能在Pool
.
如果您正在谈论要通过 shell 执行的单独程序:
该subprocess
模块将允许您通过其Popen
类生成进程,该类具有接受类文件对象的,参数 stdin
。可用于检查返回码。stdout
sterr
Popen.returncode