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()
上面的代码按顺序而不是同时运行这些方法。我想要一种可以同时运行两种方法/进程的方法。
最佳答案
代码中的简单错误。
代替:
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()
,所以它们将按顺序运行。您想指向函数,而不实际调用它们,以便子线程可以自己调用它们。关于python - 如何同时运行两个线程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47896540/