有没有一种方法可以在Python中执行固定时间的功能?

时间:2020-10-23 04:45:44

标签: python python-3.x contextmanager

我想知道有没有一种方法可以在Python中执行固定时间的功能?

我猜它可以使用装饰器来实现,例如:

def terminate_if_runs_too_long(func):
    def new_func(*args, **kwargs):
        with <lock which is valid for fixed duration>:
            return func(*args, **kwargs)
    return new_func

@terminate_if_runs_too_long
def infinite_loop():
    '''Imported function, which cannot be modified'''
    while True:
        pass

但是,我不确定如何实现可在固定持续时间内可用的资源/锁,一旦超过使用持续时间,资源/锁将引发异常。

我正在寻找一种解决方案,该解决方案可以使用单线程工作。

1 个答案:

答案 0 :(得分:1)

如果您无法控制该功能,通常没有安全的方法来执行此操作。原因之一是该功能可能在修改某些内容并将其杀死的过程中,可能会使某些内容处于不良状态。参见this question