函数调用超时
当在 Python 中调用可能无限期停止脚本执行的函数时,有必要建立一种机制来防止它。解决方案在于设置一个超时阈值,超过该阈值后脚本将干预并终止函数。
使用信号包
对于基于 UNIX 的系统,信号包提供了一个强大的解决方案。使用它:
这是一个说明性示例:
import signal # Handler function def handler(signum, frame): print("Timeout reached!") raise Exception("Timeout exception") # Function that may stall indefinitely def loop_forever(): while True: print("Looping") # Pause execution for 1 second time.sleep(1) # Set timeout to 5 seconds signal.alarm(5) signal.signal(signal.SIGALRM, handler) try: loop_forever() except Exception as exc: print("Exception:", exc)
如果函数loop_forever()未能在5秒内完成,则处理函数将被调用,引发超时异常并终止进程。
以上是如何防止 Python 函数因超时而无限期停止?的详细内容。更多信息请关注PHP中文网其他相关文章!