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之集合的关系
Sep 24 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
Python设计模式之解释器模式原理与用法实例分析
Jan 10 Python
Django框架验证码用法实例分析
May 10 Python
Django如何开发简单的查询接口详解
May 17 Python
python async with和async for的使用
Jun 20 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
python 模拟在天空中放风筝的示例代码
Apr 21 Python
Python 循环读取数据内存不足的解决方案
May 25 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目录管理函数小结
2008/09/10 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
PHP 文件上传限制问题
2019/09/01 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
迎元旦广播稿
2014/02/22 职场文书
总经理任命书
2014/03/29 职场文书
爱我中华教学反思
2014/04/28 职场文书
检讨书怎么写
2015/05/07 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Python 如何实现文件自动去重
2021/06/02 Python
python unittest单元测试的步骤分析
2021/08/02 Python
PHP中多字节字符串操作实例详解
2021/08/23 PHP