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中的len()函数的使用
Apr 07 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
python实现ID3决策树算法
Aug 29 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
python创造虚拟环境方法总结
Mar 04 Python
Python制作词云图代码实例
Sep 09 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
python Scrapy框架原理解析
Jan 04 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中遍历stdclass object的实现代码
2011/06/09 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
NumPy中的维度Axis详解
2019/11/26 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
电子商务应届生求职信
2013/11/16 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
认错检讨书
2014/10/02 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
一文搞懂MySQL索引页结构
2022/02/28 MySQL
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL