我希望你帮助解决这个简单/难以回答的问题。
我正在使用python线程。这是我的代码:
import threading
#import class1, class2, class3 . . .
def main():
list = [class1(), class2(), class3() . . .]
for obj in list:
t = threading.Thread(target=obj.run, )
t.start()
if __name__ == "__main__":
main()
我只希望在第一个中执行其中两个,当其中一个完成然后是第三个,依此类推
有办法做到这一点吗?
提前致谢
答案 0 :(得分:0)
您应该使用加入方法
def main():
list = [class1(), class2()] #only two
waiting_list = []
for obj in list:
t = threading.Thread(target=obj.run, )
t.start()
waiting_list.append(t)
for t in waiting_list:
print("Waiting for %s" % t)
t.join()
print("%s done!" % t)
list = [class3(), class4()] #more stuff
for obj in list:
t = threading.Thread(target=obj.run, )
t.start()
#and so on
另请查看concurrent.futures包以获取更高级别的线程池以避免for循环