有5个进程由subprocess.Popen(someexternalCommand)创建和运行。命令顺序启动很重要,例如,第二个过程在第一个过程开始并运行之前不能启动。 下面的代码被用于:强制Popen进程在python中以某种顺序执行
proc1 = TrafficGenUtils.Popen(someexternalCommand)
time.sleep(10)
proc2 = TrafficGenUtils.Popen(someexternalCommand)
time.sleep(10)
...
执行顺序保持时的进程数为3,但与5它几乎从来没有保持和增加睡眠,甚至60秒于事无补。 如何强制执行Popen进程是连续的。 我的代码无法正常工作的原因与Popen依赖OS创建进程的事实相关,但操作系统在需要时启动它们?我正在使用Windows 8和Python 2.7
*你知道什么时候一个进程“已经开始运行”?然后你需要编写代码来教你的程序寻找相同的东西。如果你控制你开始的进程的代码,这可以更容易一些(例如,一个进程可以创建一个新文件,当你准备好时,你的主程序可以等待这个新文件出现)。顺便说一句,'sleep()'几乎不是解决进程间(甚至是线程间)通信问题的适当方法。 –
谢谢。但我不能控制主程序启动的过程。进程是exe文件。 – user1264304
所以我再问一次:你怎么知道一个进程“已经开始并且正在运行?”。这里没有魔法。你知道或者你不知道。如果你不知道,这个问题是无法解决的。如果你知道,那么你必须教你的程序如何知道。 –