0
在使用python进行多线程处理时,试图理解以下结果。以下代码以随机顺序将A和B打印到控制台,这正是我想实现的目标。但是第二段代码仅向控制台输出“A”,并且永远不会超过t1.start()。为什么是这样?我需要做第二部分的代码才能使它像第一部分一样行事?使用python进行多线程处理
在此先感谢,这是我的第一篇文章。
这是我想要的行为:
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
你确定第一个代码片段实际上是你想要的吗?我认为当你将代码重新输入到问题框中时,你从第二个代码段中引入了同样的错误。 – user2357112