如果您确实想让
while循环永远持续下去,则每次旧线程完成后,您都需要创建一个新线程并启动它。
我更新了问题中的示例以使其正常工作:
import threadingimport timekbdInput = ''playingID = ''finished = Truedef kbdListener(): global kbdInput, finished kbdInput = raw_input("> ") print "maybe updating...the kbdInput variable is: {}".format(kbdInput) finished = Truewhile 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)


