2015-04-03 43 views
0

我需要一次運行3個並行程序。我嘗試了以下內容,但是在A和B之前完成編程時,它不起作用。我怎樣才能將正在運行的程序數量限制在任何時候最多3個。Python:通過os.system限制進程調用的數量

for i in range(10): 
    os.system("xterm -e program " + i + "a" + " &") 
    os.system("xterm -e program " + i + "b" + " &") 
    os.system("xterm -e program " + i + "c" + " ") 
+1

你可能是因爲你失去在背景執行過程的控制不使用'system'。您可能需要使用['subprocess'](https://docs.python.org/2/library/subprocess.html)模塊。 – 2015-04-03 05:23:52

+0

@JonathanLeffler你是對的 – 2015-04-03 06:18:33

回答

0

這裏我的解決方案,但我會選擇一個更好的答案:

for i in range(10): 
    a = subprocess.Popen(["xterm -e program"+ i + " a" ],shell=True) 
    b = subprocess.Popen(["xterm","-e","program",i," b"]) 
    c = subprocess.Popen(["xterm","-e","program",i," c"]) 
    a.wait() 
    b.wait() 
    c.wait()