我想知道有没有一种方法可以在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
但是,我不确定如何实现可在固定持续时间内可用的资源/锁,一旦超过使用持续时间,资源/锁将引发异常。
我正在寻找一种解决方案,该解决方案可以使用单线程工作。
答案 0 :(得分:1)
如果您无法控制该功能,通常没有安全的方法来执行此操作。原因之一是该功能可能在修改某些内容并将其杀死的过程中,可能会使某些内容处于不良状态。参见this question。