如果您确实想让while
循环永远持续下去,则每次旧线程完成后,您都需要创建一个新线程并启动它。
我更新了问题中的示例以使其正常工作:
import threading
import time
kbdInput = ''
playingID = ''
finished = True
def kbdListener():
global kbdInput, finished
kbdInput = raw_input("> ")
print "maybe updating...the kbdInput variable is: {}".format(kbdInput)
finished = True
while True:
print "kbdInput: {}".format(kbdInput)
print "playingID: {}".format(playingID)
if playingID != kbdInput:
print "Received new keyboard Input. Setting playing ID to keyboard input value"
playingID = kbdInput
else:
print "No input from keyboard detected. Sleeping 2 seconds"
if finished:
finished = False
listener = threading.Thread(target=kbdListener)
listener.start()
time.sleep(2)