gpt4 book ai didi

Python多线程中断input()

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:51 28 4
gpt4 key购买 nike

您好,我是 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

关于Python多线程中断input(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031762/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com