oczekiwanie na dane użytkownika w osobnym wątku
Próbuję zrealizować sposób, aby utworzyć wątek, który czeka na dane użytkownika; jeśli w ciągu 10 sekund nie wprowadzono żadnych danych, chcę, aby skrypt zabił zrodzony wątek i kontynuował przetwarzanie. Mam sposób, aby uzyskać dane wejściowe z wątku, jeśli tekst został wprowadzony, ale nie mam możliwości, aby przekroczyć limit czasu nowo utworzonego wątku.
W poniższym przykładzie jest najbliższy. Mówię nowo utworzonemu wątkowi, że jest demonem, i wyjdzie, gdy główny skrypt zakończy działanie. Mam problem z tym, że wątek będzie nadal czekał, aż skrypt zakończy działanie lub użytkownik wprowadzi coś.
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]
Wiem, że nagłe zabicie wątku nie jest najlepszym sposobem (Powiązany link), ale nie wiem, jak przerwać nowy wątek czekający na raw_input