我試圖做一個獨立的循環,因爲第二個使用raw_input()等待輸入。要做到這一點,我發現做這件事的最好方法是多線程,我試圖弄清楚它是如何工作的。我寫了這個:多線程簡介 - 一次運行2個循環
from threading import Thread
import time
def loopA():
while True:
print "1"
time.sleep(1)
def loopB():
while True:
print "2"
time.sleep(1)
threadA = Thread(target = loopA)
threadB = Thread(target = loopB)
threadA.run()
threadB.run()
threadA.join()
threadB.join()
I`d期望看到什麼是1S和2S的一排被印刷到外殼,但它是所有1S的只是一排。如何獲得第二個線程?
編輯:行,所以我提出:
from threading import Thread
import time
def loopA():
while True:
print "1"
time.sleep(1)
if __name__ == "__main__":
Thread(target = loopA).start()
while True:
n = raw_input("enter here:")
print n
我現在想的是1正在打印一遍又一遍,每當我寫的東西並回車,它應該只是得到打印出來,但1的循環不應該停止。
你的第二個代碼適合我......你有什麼? – Aaron
您的線程正在爭奪非同步資源,特別是控制檯。如果我將loopA的循環設置爲sleep 10,則可以輸入「12345」並等待打印,然後繼續輸入「67890」,raw_input獲得「67890」。 print語句強制控制檯丟棄所有內容並從raw_input開始。 –
第二個代碼:我希望每秒打印1個,即使我正在寫入輸入,也沒有按回車。輸入會停止進程並等待,直到我返回時,我希望它不會與循環進行混淆。 –