使用func_timeout模块中提供的func_set_timeout装饰器可以非常简单的设置python程序的超时时间,超时后程序抛出func_timeout.exceptions.FunctionTimedOut异常。此时再用try,except做异常处理即可。
import func_timeout
import time
from func_timeout import func_set_timeout
@func_set_timeout(5)
def f():
while True:
print "1"
time.sleep(1)
if __name__ == '__main__':
try:
f()
except func_timeout.exceptions.FunctionTimedOut:
print "timeout!"