当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Python timer定时器两种常用方法解析

    栏目:Linux/apache问题 时间:2020-01-20 21:15

    这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    方法一,使用线程中现成的:

    这种一般比较常用,特别是在线程中的使用方法,下面是一个例子能够很清楚的说明它的具体使用方法:

    #! /usr/bin/python3
    #! -*- conding: utf-8 -*-
    import threading
    import time
    def fun_timer():
      print(time.strftime('%Y-%m-%d %H:%M:%S'))
      global timer
      timer = threading.Timer(2,fun_timer)
      timer.start();
    timer = threading.Timer(1,fun_timer)
    timer.start();
    time.sleep(5)
    timer.cancel()
    print(time.strftime('%Y-%m-%d %H:%M:%S'))

    方法二,根据time中的来定义timer:

    这种方法使用比较灵活,可根据自身的东西来添自身的需求:

    import time
    
    class TimerError(Exception):
      """A custom exception used to report errors in use of Timer class"""
    
    class Timer:
      def __init__(self):
        self._start_time = None
    
      def start(self):
        """Start a new timer"""
        if self._start_time is not None:
          raise TimerError(f"Timer is running. Use .stop() to stop it")
    
        self._start_time = time.perf_counter()
    
      def stop(self):
        """Stop the timer, and report the elapsed time"""
        if self._start_time is None:
          raise TimerError(f"Timer is not running. Use .start() to start it")
    
        elapsed_time = time.perf_counter() - self._start_time
        self._start_time = None
        print(f"Elapsed time: {elapsed_time:0.4f} seconds")

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。