2017-12-19 17 views
2
from threading import Thread 
import time 
class ThreadTest(): 

    def loop1(self): 
     for i in range(0, 100, 5): 
      print(i) 
      time.sleep(2) 

    def loop2(self): 
     for i in range(100, 210, 11): 
      print(i) 
      time.sleep(2) 

if __name__ == '__main__': 
    T1 = Thread(target=ThreadTest().loop1(), args=()) 
    T2 = Thread(target=ThreadTest().loop2(), args=()) 
    T1.start() 
    T2.start() 
    T1.join() 
    T2.join() 

上記のコードは、メソッドを同時にではなく順番に実行します。私は2つの方法/プロセスを同時に実行できる方法が欲しい。2つのスレッドを同時に実行するには?

答えて

3

コードにバグがあります。

は交換してください:

T1 = Thread(target=ThreadTest().loop1(), args=()) 
T2 = Thread(target=ThreadTest().loop2(), args=()) 

をして:

T1 = Thread(target=ThreadTest().loop1, args=()) 
T2 = Thread(target=ThreadTest().loop2, args=()) 

あなたは、メインスレッドの関数loop1()loop2()を呼んでいるので、彼らは順番に実行するつもりです。サブスレッドがそれ自身を呼び出すことができるように、実際にそれらを呼び出すことなく、関数を指し示すことを望みます。

関連する問題