我有一个使用 raw_input 从用户获取输入的函数,我的要求是为用户设置超时,以防用户没有及时提供任何输入,应该假设一些其他默认值。
为了实现同样的功能,我为输入函数创建了一个新线程(t1),并且从我的主线程中我正在监视 t1 的完成,如果 t1 没有及时完成,我的主线程应该终止 t1。
我如何达到同样的效果?
请注意,我已经尝试过使用信号和选择模块,但它在 jython 中不起作用。即使使用 threading.Thread._Thread__delete(t1) 删除线程也不起作用。
def get_input():
return raw_input("Enter: ") # blocked until user enters
t1 = threading.Thread(target=get_input)
t1.start()
timeout = 10
count = 0
while count < timeout:
count += 1
if not t1.isAlive():
break
time.sleep(1)
else:
# how do I kill the t1 here?