最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python使用装饰器和线程函数执行时间的方法

来源:动视网 责编:小采 时间:2020-11-27 14:32:43
文档

python使用装饰器和线程函数执行时间的方法

python使用装饰器和线程函数执行时间的方法:本文实例讲述了python使用装饰器和线程函数执行时间的方法。分享给大家供大家参考。具体分析如下: 很多时候函数内部包含了一些不可预知的事情,比如调用其它软件,从网络抓取信息,可能某个函数会卡在某个地方不动态,这段代码可以用来函数的执行时
推荐度:
导读python使用装饰器和线程函数执行时间的方法:本文实例讲述了python使用装饰器和线程函数执行时间的方法。分享给大家供大家参考。具体分析如下: 很多时候函数内部包含了一些不可预知的事情,比如调用其它软件,从网络抓取信息,可能某个函数会卡在某个地方不动态,这段代码可以用来函数的执行时


本文实例讲述了python使用装饰器和线程函数执行时间的方法。分享给大家供大家参考。具体分析如下:

很多时候函数内部包含了一些不可预知的事情,比如调用其它软件,从网络抓取信息,可能某个函数会卡在某个地方不动态,这段代码可以用来函数的执行时间,只需要在函数的上方添加一个装饰器,timelimited(2)就可以限定函数必须在2秒内执行完成,如果执行完成则返回函数正常的返回值,如果执行超时则会抛出错误信息。

# -*- coding: utf-8 -*-
from threading import Thread
import time
class TimeoutException(Exception):
 pass
ThreadStop = Thread._Thread__stop#获取私有函数
def timelimited(timeout):
 def decorator(function):
 def decorator2(*args,**kwargs):
 class TimeLimited(Thread):
 def __init__(self,_error= None,):
 Thread.__init__(self)
 self._error = _error
 def run(self):
 try:
 self.result = function(*args,**kwargs)
 except Exception,e:
 self._error =e
 def _stop(self):
 if self.isAlive():
 ThreadStop(self)
 t = TimeLimited()
 t.start()
 t.join(timeout)
 if isinstance(t._error,TimeoutException):
 t._stop()
 raise TimeoutException('timeout for %s' % (repr(function)))
 if t.isAlive():
 t._stop()
 raise TimeoutException('timeout for %s' % (repr(function)))
 if t._error is None:
 return t.result
 return decorator2
 return decorator
@timelimited(2)
def fn_1(secs):
 time.sleep(secs)
 return 'Finished'
if __name__ == "__main__":
 print fn_1(4)

希望本文所述对大家的Python程序设计有所帮助。

文档

python使用装饰器和线程函数执行时间的方法

python使用装饰器和线程函数执行时间的方法:本文实例讲述了python使用装饰器和线程函数执行时间的方法。分享给大家供大家参考。具体分析如下: 很多时候函数内部包含了一些不可预知的事情,比如调用其它软件,从网络抓取信息,可能某个函数会卡在某个地方不动态,这段代码可以用来函数的执行时
推荐度:
标签: 函数的 python 线程
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top