2

我有一个使用 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?
4

0 回答 0