2015-04-03 74 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()