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