有没有办法在 Python 中执行固定持续时间的函数?

Is there a way to execute function for a fixed duration in Python?

我想知道有没有办法在 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

但是,我不确定如何实现 resource/lock,它会在固定期限内可用,并且一旦超过使用期限就会引发异常。

我正在寻找一个可以使用单线程的解决方案。

如果您无法控制该功能,通常没有安全的方法来执行此操作。一个原因是该函数可能正在修改某些东西并杀死它可能会使某些东西处于不良状态。参见 this question