首页 > 后端开发 > Python教程 > 如何通过超时中断 Python 函数执行?

如何通过超时中断 Python 函数执行?

Mary-Kate Olsen
发布: 2024-12-18 11:00:16
原创
223 人浏览过

How to Interrupt a Python Function Execution with a Timeout?

Python 中超时中断函数

当调用可能无限期停止的函数时,阻止脚本进一步执行,有必要实施超时机制。 Python 的 signal 包为这个问题提供了解决方案。

signal 包主要用于 UNIX 系统,允许您为特定函数设置超时。如果函数超过指定的超时,则会发出信号以中断执行。

示例:

考虑一个可能无限期运行的函数loop_forever()。我们需要调用此函数,但设置 5 秒的超时。如果函数花费的时间超过 5 秒,我们想要取消其执行。

import signal

# Register a handler for the timeout
def handler(signum, frame):
    print("Timeout! Cancelling function execution.")
    raise Exception("Timeout exceeded!")

# Register the signal function handler
signal.signal(signal.SIGALRM, handler)

# Define a timeout of 5 seconds
signal.alarm(5)

try:
    loop_forever()
except Exception as e:
    print(str(e))
    
# Cancel the timer if the function finishes before timeout
signal.alarm(0)
登录后复制

在此示例中,5 秒后,处理函数被调用,引发异常。这个异常在父代码中被捕获,然后取消计时器并终止loop_forever()函数的执行。

以上是如何通过超时中断 Python 函数执行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板