python 限制函数执行时间,自己实现timeout的实例


Posted in Python onJanuary 12, 2019

如下所示:

# coding=utf-8
import signal
import 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的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 提取文件的小程序
Jul 29 Python
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
简介Django中内置的一些中间件
Jul 24 Python
python学习之编写查询ip程序
Feb 27 Python
win7上python2.7连接mysql数据库的方法
Jan 14 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
python多线程之事件Event的使用详解
Apr 27 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
Python3实现获取图片文字里中文的方法分析
Dec 13 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
python 生成正态分布数据,并绘图和解析
Dec 21 Python
Python爬取某平台短视频的方法
Feb 08 Python
Python构建图像分类识别器的方法
Jan 12 #Python
使用python opencv对目录下图片进行去重的方法
Jan 12 #Python
python变量赋值方法(可变与不可变)
Jan 12 #Python
python交换两个变量的值方法
Jan 12 #Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 #Python
浅谈Python中的全局锁(GIL)问题
Jan 11 #Python
Python 实现子类获取父类的类成员方法
Jan 11 #Python
You might like
用PHP实现维护文件代码
2007/06/14 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
JS backgroundImage控制
2009/05/19 Javascript
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
Python调用服务接口的实例
2019/01/03 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
windows下python安装pip方法详解
2020/02/10 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
Java软件工程师综合面试题笔试题
2013/09/08 面试题
三八妇女节超市活动方案
2014/08/18 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
新学期感想
2015/08/10 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
话题作文之自信作文
2019/11/15 职场文书
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
mysql脏页是什么
2021/07/26 MySQL
Redis分布式锁的7种实现
2022/04/01 Redis