python 限制函数执行时间,自己实现timeout的实例
如下所示:
#coding=utf-8 importsignal importtime defset_timeout(num,callback): defwrap(func): defhandle(signum,frame):#收到信号SIGALRM后的回调函数,第一个参数是信号的数字,第二个参数是theinterruptedstackframe. raiseRuntimeError defto_do(*args,**kwargs): try: signal.signal(signal.SIGALRM,handle)#设置信号和回调函数 signal.alarm(num)#设置num秒的闹钟 print'startalarmsignal.' r=func(*args,**kwargs) print'closealarmsignal.' signal.alarm(0)#关闭闹钟 returnr exceptRuntimeErrorase: callback() returnto_do returnwrap if__name__=='__main__': defafter_timeout():#超时后的处理函数 print"dosomethingaftertimeout." @set_timeout(2,after_timeout)#限时2秒 defconnect():#要执行的函数 time.sleep(1)#函数执行时间,写大于2的值,可测试超时 return'connectsuccess.' printconnect()
以上这篇python限制函数执行时间,自己实现timeout的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。