时间:2021-05-22
如下所示:
# coding=utf-8import signalimport time def set_timeout(num, callback): def wrap(func): def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the interrupted stack frame. raise RuntimeError def to_do(*args, **kwargs): try: signal.signal(signal.SIGALRM, handle) # 设置信号和回调函数 signal.alarm(num) # 设置 num 秒的闹钟 print 'start alarm signal.' r = func(*args, **kwargs) print 'close alarm signal.' signal.alarm(0) # 关闭闹钟 return r except RuntimeError as e: callback() return to_do return wrap if __name__ == '__main__': def after_timeout(): # 超时后的处理函数 print "do something after timeout." @set_timeout(2, after_timeout) # 限时 2 秒 def connect(): # 要执行的函数 time.sleep(1) # 函数执行时间,写大于2的值,可测试超时 return 'connect success.' print connect()以上这篇python 限制函数执行时间,自己实现timeout的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
实际项目中会涉及到需要对有些函数的响应时间做一些限制,如果超时就退出函数的执行,停止等待。可以利用python中的装饰器实现对函数执行时间的控制。python装
本文实例为大家分享了python修改装饰器中参数的具体代码,供大家参考,具体内容如下案例:为分析程序内哪些函数执行时间开销较大,我们需定义一个带timeout参
本文实例讲述了php实现用于计算执行时间的类。分享给大家供大家参考。具体如下:有了这个php类,计算函数或者一段代码的执行时间就简单了t_start=micro
本文实例讲述了python使用装饰器和线程限制函数执行时间的方法。分享给大家供大家参考。具体分析如下:很多时候函数内部包含了一些不可预知的事情,比如调用其它软件
本文实例讲述了Python实现监控程序执行时间并将其写入日志的方法。分享给大家供大家参考。具体实现方法如下:#/usr/bin/python#-*-coding