设置运行函数Python的时间限制[重复]

Posted

技术标签:

【中文标题】设置运行函数Python的时间限制[重复]【英文标题】:Set Time Limit for running a function Python [duplicate] 【发布时间】:2020-10-07 17:11:00 【问题描述】:

目前我正在编写一个函数,其中包含有一些限制的随机样本。有可能在最后一步没有有效的条件可供选择,我的功能会卡住。

有没有办法为这个函数设置运行时间限制?假设2秒后,如果没有返回结果,它将再次运行该函数,直到它在2秒内返回结果。 提前致谢。

【问题讨论】:

定义“将被卡住” 我们能看看你目前写的代码吗?最简单的解决方案可能是检查函数中的秒表,但如果没有现有代码作为示例,很难解释如何做到这一点。另一种选择是在另一个线程上运行该函数并在超时后终止它。 【参考方案1】:

您可以使用threading 模块。

以下代码是一个带有超时的线程示例:

from threading import Thread

p = Thread(target = myFunc, args = [myArg1, myArg2])
p.start()
p.join(timeout = 2)

您可以在代码中添加类似以下内容,以检查是否保持循环,直到函数正确结束:

shouldFinish = False
def myFunc(myArg1, myArg2):
    ...
    if finishedProperly:
        shouldFinish = True

while shouldFinish == False:
    p = Thread(target = myFunc, args = [myArg1, myArg2])
    p.start()
    p.join(timeout = 2)

【讨论】:

以上是关于设置运行函数Python的时间限制[重复]的主要内容,如果未能解决你的问题,请参考以下文章

函数递归

限制函数调用的时间[重复]

Python函数

如何在python中的groupby中为lambda函数设置名称标题[重复]

Qt Designer和Python在单独的functions.py中运行一个函数[重复]

python的自定义函数(函数类型defrangererun)