如何在python中发生特定超时后终止进程?

问题描述

我有一个python函数,该函数具有可能会陷入无限循环的循环。 我想终止该功能并在超出时间限制(例如10秒)时显示错误。

例如这是包含无限循环的功能

def myfunc(data):
    while True:
        data[0]+=10
    return data
data=[57,6,879,79,]

从这里打电话

print(myfunc(data))

我希望它完全终止进程并打印消息。我正在Windows上工作。

任何参考或资源都会有所帮助。

谢谢

解决方法

也许您可以尝试使用func-timeout Python软件包。

您可以使用以下命令进行安装:

pip install func-timeout
,

此代码将解决您的问题“如果超过10秒的时间限制,我想终止该功能并显示错误。”

from time import process_time as timer

def whatever(function):
    start = timer()
    infinite loop here:
        end = timer()
    (your code here)
        if end >= 10:
            print(whatever)
            return

故障:使用时间模块可以执行以下操作
在程序开始时,导入方法
在(无限循环)开始时,start = timer()将调用process_time并将值保存为start。

end = timer()将继续将调用发送到process_time并存储新值
将需要的代码放入循环中
如果end> = 10:将在每次循环迭代时继续检查计数
打印(任何)
如果在下一个循环中检查时间运行10秒,则return会通过转义自动终止该功能。

如果名为idk的IDK继续在后台运行,并且您必须继续将其停止,则不会说“如何停止process_time”。但这应该可以回答您的问题。您可以根据我给您的信息进行进一步调查。
注意: 这并不是为了生成“精确”时序而设计的,因为它需要找到更复杂的方法

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...