设置运行函数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中的groupby中为lambda函数设置名称标题[重复]