美文网首页
Python 语句执行时间控制

Python 语句执行时间控制

作者: dawsonenjoy | 来源:发表于2018-10-20 15:58 被阅读0次

对于执行某些语句时,担心执行时间过长,于是需要设置最长执行时间,超时即退出,这里提出三种方案:

Window下

1.eventlet

pip install eventlet
安装相关模块后,即可使用,没有系统限制,举例:

import eventlet
import time
eventlet.monkey_patch()
#添加补丁
with eventlet.Timeout(2,False):
#最多执行时间为2s
    print(1)
    time.sleep(1.5)
    print(2)
    time.sleep(1)
    print(3)
print(4)

结果为:
1
2
4

可以看到with里的最后一个print因为超出2秒限制而没有输出

更多参考

https://www.cnblogs.com/Security-Darren/p/4170031.html

Linux下

2.signal

通过signal模块信号机制来控制语句执行时间,缺点是windows下信号机制不够完善,因而只能在linux、unix这类系统下使用,举例:

import time
import signal

def abc():
#最多执行时间为2s
    print(1)
    time.sleep(1.5)
    print(2)
    time.sleep(1)
    print(3)

#超时的回调函数
def myHandler(signum, frame):
  print("执行超时")
  exit()

signal.signal(signal.SIGALRM, myHandler)
#定时2秒,超时则执行回调函数
signal.alarm(2)
abc()
print(4)

结果为:
1
2
执行超时

上面的是程序整体执行时间控制,所以超时后不论语句在哪都不会执行

更多参考:

https://blog.csdn.net/imnisen1992/article/details/53192389
https://blog.csdn.net/jinixin/article/details/80383177?utm_source=blogxgwz4
https://www.jianshu.com/p/c8edab99173d
https://blog.csdn.net/zelinhehe/article/details/77529844

3.timeout-decorator

pip install time-decorator
安装相关模块后,即可直接调用装饰器使用,超时即报错,可以捕捉异常处理,但也基于信号机制,无法在windows下使用,举例:

import time
import timeout_decorator

@timeout_decorator.timeout(2)
def abc():
#最多执行时间为2s
    print(1)
    time.sleep(1.5)
    print(2)
    time.sleep(1)
    print(3)

try:
    abc()
except:
    pass
print(4)

结果为:
1
2
4
更多参考

https://www.jianshu.com/p/a7fc98c7af4d
https://www.cnblogs.com/fengmk2/archive/2008/08/30/python_tips_timeout_decorator.html

相关文章

  • Python 语句执行时间控制

    对于执行某些语句时,担心执行时间过长,于是需要设置最长执行时间,超时即退出,这里提出三种方案: Window下 1...

  • python 基础 - 循环语句

    python 循环语句 Python中的循环语句有 for 和 while。Python循环语句的控制结构图如下所...

  • Python | 常用的控制流语句

    一、控制流语句介绍 了解什么是控制流语句以及Python常用的两种控制流语句。 1.控制流语句 控制流语句即用来实...

  • 03学习Python

    学习记录,欢迎指出错误 流程控制 Python中流程控制语句有 if语句 for语句 while语句 if语句 在...

  • 机器学习 -- Python基础(五)Python的程序控制

    Python的程序控制 1.1 分支语句 1.2 循环语句 1.3 程序控制

  • Python程序结构

    2018年6月27日笔记 python流程控制 1.python流程控制语句结构 4种流程控制语句结构:ifif ...

  • Python笔记

    1、Python流程控制结构 1.1Python条件结构 ①if()语法:if():多条语句体注意:if结构的语句...

  • Python 3 笔记 - 第6章 逻辑控制

    1. 条件控制 Python 条件控制只有 if-elif-else 语句,没有 switch-case 语句 P...

  • Python——控制语句

    Python控制语句 循环(loop)控制 循环的最基本语法 for循环 语法 rangerange(起始,范围,...

  • python 控制语句

    if语句与Java的不同 * else if 使用elif * 判断条件的省略用法(空字符串解析为false in...

网友评论

      本文标题:Python 语句执行时间控制

      本文链接:https://www.haomeiwen.com/subject/txrmzftx.html