是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可调用对象(例如函数)。 两者不可互换。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...