正如我所提到的那样。我在Spyder IDE中使用Python 2.7。我的问题是,在我的循环中,所有线程立即启动...这会杀死我的电脑。这就是为什么我一次只想要其中两个。我知道join等待线程完成?我误解了吗?
def func1(string):
subprocess.Popen(string , shell= True)
for i in range(0,A):
j = 0
check = False
tl=[]
while j <= B :
string = 'python do.py'+ ' '+str(i)+' '+str( j)+' '+ str( 3)
t = threading.Thread(target=func1,args=[string])
t.start()
tl.append(t)
string = 'python do.py'+ ' '+str(i)+' '+str( j)+' '+ str( 3)
t = threading.Thread(target=func1,args=[string])
t.start()
tl.append(t)
for t in tl:
t.join()
答案 0 :(得分:0)
join确实等待线程完成,但subprocess.Popen()
没有。
请尝试使用subprocess.call()
。
在此处查看更多内容:Python popen command. Wait until the command is finished