是python multiprocessing.Process start()执行与subprocess.Popen相同的工作

Mua*_*Mua 1 python subprocess multiprocessing

我是Python的新手.我最近尝试使用Python脚本来调用控制台exe,这是一个需要很长时间的过程.我将允许在CPU允许的情况下多次调用exe.当exe完成它的工作.可以将CPU分配给其他新作业.所以我想我可能需要多个过程控制机制.

在我切换到multiprocessing.Process之前,我可以从subprocess.Popen调用我的exe.它工作正常.但是,在我切换到multiprocessing.Process之后.似乎start()无法调用我的exe(我可以告诉它与CPU性能的区别).任何人都可以提供这方面的线索吗?仅供参考,我使用以下代码.

以前使用subrpocess:

cmd = exeFileName + r" " + inputArguments

a = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)

现在使用多个进程:

b = multiprocessing.Process(target=exeFileName,args=inputArguments)

b.start()
Run Code Online (Sandbox Code Playgroud)

您可能已经注意到,我的exe需要输入参数才能工作.所以在子进程代码中,我使用一串cmd来捕获整行.在多处理代码中,我不是.它已经有一个目标和args内置.感谢您的时间!

unu*_*tbu 5

用于subprocess.Popen在子进程中运行其他可执行文件.

用于multiprocessing.Process在子进程中运行Python callables(例如函数).

这两者不可互换.