使用 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()
中的()
。
在 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()
中的()
。