Python中进程的简单队列调度示例?
我有一组需要执行的程序。我想充分利用机器的性能,让所有的CPU都在执行这些程序。我不想让系统超负荷运行,所以我真正想要的是在任何时候,正在执行的程序数量等于CPU的数量。
我还需要保存每个完成的程序的标准输出、错误输出和返回代码。
我该如何在Python中实现这个目标呢?
补充说明:这里的“程序”指的是一个命令行程序。
1 个回答
2
如果你是在说自己写的,用Python实现的进程:
multiprocessing
模块可以让你同时运行多个进程。具体来说,你可能想要创建数量为multiprocessing.cpu_count的进程,可能会放在一个Pool
里。
如果你是在说想要通过命令行执行的独立程序:
subprocess
模块可以让你通过它的Popen
类来启动进程,这个类有一些参数,比如stdin
、stdout
和stderr
,这些参数可以接受类似文件的对象。你可以用Popen.returncode
来检查进程的返回代码。