使用 Windows 7 + python 2.6,我正在尝试并行运行模拟模型。我可以通过在我的文件浏览器中双击它们来启动可执行文件的多个实例。但是,异步调用Popen
会导致每个连续实例中断前一个实例。对于它的价值,可执行文件将文本返回到控制台,但我不需要以交互方式收集结果。
这是我到目前为止的位置:
import multiprocessing, subprocess
def run(c):
exe = os.path.join("<location>","folder",str(c),"program.exe")
run = os.path.join("<location>","folder",str(c),"run.dat")
subprocess.Popen([exe,run],creationflags = subprocess.CREATE_NEW_CONSOLE)
def main():
pool = multiprocessing.Pool(3)
for c in range(10):
pool.apply_async(run,(str(c),))
pool.close()
pool.join()
if __name__ == '__main__':
main()
在为解决方案搜索 SO 之后,我了解到使用多处理可能是多余的,但我需要一些方法来限制工作的核心数量。