2016-10-06 3 views
1

この簡単/難しい質問をお手伝いします。どのようにスレッドの数を処理するPythonを実行するには?

私は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() 

私が最初にそれらのうちの2つを実行すると、ときにそれらのいずれかが第3 1を終了し、そう

にこれを行う方法はありますしたいですか?

おかげで事前に

答えて

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 

またループ

+0

このため避けるために、より高いレベルのスレッドプールのconcurrent.futuresパッケージを見えるかもしれに参加使用する必要があります今のところ良い解決策にはなりますが、スレッドは2つずつ進んでいるようです...問題はありません。私はそれを使用します。ありがとうございます。 – darthVader

+0

このコードを使用して、毎回2つのクラスを取り、呼び出すそれはループからです... –

関連する問題