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

위의 코드는 메소드를 동시에 실행하지 않고 순서대로 실행합니다. 두 가지 방법/프로세스를 동시에 실행할 수있는 방법이 필요합니다.두 개의 스레드를 동시에 실행하는 방법은 무엇입니까?

답변

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()를 호출하고 있기 때문에, 그들은 순차적으로 실행하는 것입니다. 하위 스레드가 함수를 호출 할 수 있도록 함수를 호출하지 않고 함수를 가리 키기를 원합니다.

관련 문제