是python multiprocessing进程start与subprocess.Popen做相同的工作

问题描述

| 我是Python的新手。我最近尝试使用Python脚本调用控制台exe,这是一个需要很长时间的过程。我将允许exe被cpu允许多次调用。并且当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)
现在使用多进程:
b = multiprocessing.Process(target=exeFileName,args=inputArguments)

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

解决方法

使用“ 2”在子进程中运行其他可执行文件。 使用ѭ3来在子进程中运行Python可调用对象(例如函数)。 两者不可互换。