有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
所以我再問一次:你怎麼知道一個進程「已經開始並且正在運行?」。這裏沒有魔法。你知道或者你不知道。如果你不知道,這個問題是無法解決的。如果你知道,那麼你必須教你的程序如何知道。 –