Python中进程的简单队列调度示例?

3 投票
1 回答
968 浏览
提问于 2025-04-15 19:01

我有一组需要执行的程序。我想充分利用机器的性能,让所有的CPU都在执行这些程序。我不想让系统超负荷运行,所以我真正想要的是在任何时候,正在执行的程序数量等于CPU的数量。
我还需要保存每个完成的程序的标准输出、错误输出和返回代码。
我该如何在Python中实现这个目标呢?

补充说明:这里的“程序”指的是一个命令行程序。

1 个回答

2

如果你是在说自己写的,用Python实现的进程:

multiprocessing模块可以让你同时运行多个进程。具体来说,你可能想要创建数量为multiprocessing.cpu_count的进程,可能会放在一个Pool里。

如果你是在说想要通过命令行执行的独立程序

subprocess模块可以让你通过它的Popen类来启动进程,这个类有一些参数,比如stdinstdoutstderr,这些参数可以接受类似文件的对象。你可以用Popen.returncode来检查进程的返回代码。

撰写回答