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实现的阳历转阴历(农历)算法
Apr 25 Python
Python自定义类的数组排序实现代码
Aug 28 Python
Python做文本按行去重的实现方法
Oct 19 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
Python迭代器定义与简单用法分析
Apr 30 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
python元组和字典的内建函数实例详解
Oct 22 Python
Python下利用BeautifulSoup解析HTML的实现
Jan 17 Python
详解Python高阶函数
Aug 15 Python
pycharm2020.2 配置使用的方法详解
Sep 16 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 02 Python
python turtle绘图
May 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读取目录下所有文件的代码
2008/01/07 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
JS 文件传参及处理技巧分析
2010/05/13 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
python实现简易淘宝购物
2019/11/22 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
python爬取招聘要求等信息实例
2020/11/20 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
反四风对照检查材料
2014/09/22 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python