使用 python 的多线程

multithreading using python

在 python 中使用多线程时尝试了解以下结果。下面的代码以随机顺序将 A 和 B 打印到控制台,这是我想要实现的。但是第二段代码只打印 "A" 到控制台,并且永远不会超过 t1.start()。为什么是这样?我需要做什么才能使第二部分代码的行为与第一部分相同?

提前致谢,这是我的第一个 post。

这就是我想要的行为:

from threading import Thread
def runA():
    while True:
        print ('A\n')

def runB():
    while True:
        print ('B\n')

if __name__ == "__main__":
     t1 = Thread(target = runA())
     t2 = Thread(target = runB())
     t1.setDaemon(True)
     t2.setDaemon(True)
     t1.start()
     t2.start()
     while True:
         pass

我想要从上面的代码产生的行为,但使用 类 就像下面的例子一样。下面的代码从不执行 t2.start()。这是为什么?

from threading import Thread
class test():
     def runA(self):
         while True:
             print ('A\n')

     def runB(self):
         while True:
             print ('B\n')

if __name__ == "__main__":
     testingNow=test()
     t1 = Thread(target = testingNow.runA())
     t2 = Thread(target = testingNow.runB())
     t1.setDaemon(True)
     t2.setDaemon(True)
     t1.start()
     t2.start()
     while True:
         pass

去掉testingNow.runA()testingNow.runB()中的()