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中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
python计算圆周率pi的方法
Jul 11 Python
Python运算符重载详解及实例代码
Mar 07 Python
python 数据的清理行为实例详解
Jul 12 Python
Python编程实现的图片识别功能示例
Aug 03 Python
python得到电脑的开机时间方法
Oct 15 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
python实现在列表中查找某个元素的下标示例
Nov 16 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
递归列出所有文件和目录
2006/10/09 PHP
编写PHP的安全策略
2006/10/09 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
PHP面向对象概念
2011/11/06 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
Javascript 继承机制实例
2009/08/12 Javascript
什么是JavaScript
2009/08/13 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
Python map和reduce函数用法示例
2015/02/26 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
如何转换一个字符串到enum值
2014/04/12 面试题
作文评语集锦大全
2014/04/23 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
地理科学专业自荐信
2014/09/01 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
停课通知书
2015/04/24 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
汉字听写大会观后感
2015/06/12 职场文书
旅行社计调工作总结
2015/08/12 职场文书