如何同时运行两个线程?

Nav*_*Nav 4 python multithreading python-3.x python-multiprocessing

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()
Run Code Online (Sandbox Code Playgroud)

上面的代码按顺序而不是同时运行这些方法。我想要一种可以同时运行两种方法/进程的方法。

SCB*_*SCB 6

代码中的简单错误。

代替:

T1 = Thread(target=ThreadTest().loop1(), args=())
T2 = Thread(target=ThreadTest().loop2(), args=())
Run Code Online (Sandbox Code Playgroud)

和:

T1 = Thread(target=ThreadTest().loop1, args=())
T2 = Thread(target=ThreadTest().loop2, args=())
Run Code Online (Sandbox Code Playgroud)

因为您正在调用函数loop1()并且loop2()在主线程中,它们将按顺序运行。您想指向函数,而不实际调用它们,以便子线程可以自己调用它们。