python - 如果有人花了很长时间才回答 Python 上的输入,有没有办法让事情发生?

标签 python input multiprocessing gil

例如,如果您花费超过 10 秒的时间来回答输入,程序将打印文本或执行某行代码。您仍然可以回答,当您没有回答时,只会打印文本,或类似的内容。

最佳答案

您可以使用线程实现类似的效果。这是一个非常简单的示例:

from threading import Thread
from time import sleep

def ask():
  text = input("Type something ")
  print(text)

def timeout():
  sleep(5)
  print("timed out!")

for i in (Thread(target=ask), Thread(target=timeout)):
    # Start 'ask' and 'timeout' as threads
    i.start()

两个函数将并行运行,您将看到 5 秒后打印的超时消息,与输入分开。

如果您想要更复杂,您可以保留对正在运行的线程的引用,并允许任一线程停止另一个线程(例如,如果用户输入某些内容,则取消超时)。

关于python - 如果有人花了很长时间才回答 Python 上的输入,有没有办法让事情发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71301245/

相关文章:

python - 在 Python 中读取文件时有没有办法跳到特定的行号?

python - 按值拆分为等份

python - 使用python从zip文件中删除路径

javascript - jQuery/javascript 特定词检测

php - 如果不存在 PHP session ,则禁用页面上的所有输入按钮

python - 如何运行 Python CGI 脚本

c++ - C/C++ 从程序向标准输入添加输入?

python - 在 numpy block 上并行运行重循环

python - 使用多处理模块结束守护进程

Python 多处理 : sharing data between processes