我想完成一種方法來產生一個等待用戶輸入的線程;如果在10秒內沒有輸入任何輸入,我希望腳本殺死衍生線程並繼續處理。如果輸入文本,我有辦法從線程獲取輸入,但我無法讓超時消除新產生的線程。等待用戶輸入在單獨的線程
在下面的例子中是最接近的我來了。我告訴新創建的線程它是一個守護進程,當主腳本退出時它會退出。我遇到的問題是線程將繼續等待,直到腳本退出或用戶輸入了某些內容。
shared_var = ['1']
def run(ref):
ref[0] = raw_input("enter something: ")
print "shared var changed to '%s'" % (ref[0])
thread = threading.Thread(target=run, args=(shared_var,))
thread.daemon = True
thread.start()
time.sleep(10) # simplified timeout
#Need some way to stop thread if no input has been entered
print "shared var = " + shared_var[0]
我知道突然殺線程沒有去(Related Link)的最佳方式,但我不知道如何中斷新的線程,你的情況不要等待的raw_input的