Tôi đang cố gắng hoàn thành một cách để sinh ra một chuỗi chờ đầu vào của người dùng; nếu không có đầu vào nào được nhập trong vòng 10 giây, tôi muốn tập lệnh xóa chuỗi đã sinh ra và tiếp tục xử lý. Tôi đã có một cách để có được đầu vào trở lại từ các chủ đề nếu văn bản được nhập vào nhưng tôi không có cách nào để cho giết thời gian chờ ra khỏi thread mới sinh ra.chờ đầu vào của người dùng trong chủ đề riêng biệt
Trong ví dụ dưới đây là gần nhất tôi đã đến. Tôi nói với các chủ đề mới được tạo ra rằng nó là một daemon và nó sẽ thoát ra khi kịch bản chính thoát. Vấn đề mà tôi có với điều này là các chủ đề sẽ tiếp tục chờ đợi cho đến khi một trong hai kịch bản thoát, hoặc người dùng đã nhập một cái gì đó.
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]
Tôi biết đột ngột giết chết một chủ đề không phải là cách tốt nhất để đi (Related Link), nhưng tôi không biết làm thế nào để làm gián đoạn các chủ đề mới chờ đợi trên raw_input