Skip to main content
 首页 » 编程设计

Python多线程中断input()

2024年08月25日33lonelyxmas

您好,我是 python 的新手,我正在尝试创建一个启动线程的程序,该线程将在五秒后中断输入 () 函数并打印消息“完成!”。
目前它只打印“完成!”给出输入后。即使在五秒钟过去后,用户也必须在消息“完成!”之前进行输入。被展示。如何让线程中断 input() 函数?

import time 
import threading 
 
def fiveSec(): 
    time.sleep(5) 
    print('Done!') 
 
def main(): 
    t = threading.Thread(target = fiveSec) 
    t.daemond = True 
    t.start() 
    input('::>') 
 
if __name__ == '__main__': 
    main() 

(使用 Python 版本 3.4.2)

请您参考如下方法:

您不需要线程来执行此操作,而是使用信号:

import signal 
def interrupted(signum, frame): 
    print "Timeout!" 
signal.signal(signal.SIGALRM, interrupted) 
signal.alarm(5) 
try: 
    s = input("::>") 
except: 
    print "You are interrupted." 
signal.alarm(0) 

您可以阅读有关信号模块的文档: https://docs.python.org/2/library/signal.html