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中的localtime()方法使用详解
May 22 Python
matplotlib绘制动画代码示例
Jan 02 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
python list是否包含另一个list所有元素的实例
May 04 Python
python中的常量和变量代码详解
Jul 25 Python
浅谈Django的缓存机制
Aug 23 Python
django富文本编辑器的实现示例
Apr 10 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
通过实例解析Python调用json模块
Dec 11 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
python神经网络Xception模型
May 06 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
新52大事件
2020/03/03 欧美动漫
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
PHP闭包函数详解
2016/02/13 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
微信支付开发告警通知实例
2016/07/12 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
jQuery数组处理方法汇总
2011/06/20 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
培训协议书范本
2014/04/22 职场文书
承诺书格式范文
2014/06/03 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
2014年财务科工作总结
2014/11/11 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
同学聚会祝酒词
2015/08/10 职场文书
品德与社会教学反思
2016/02/24 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android