python单线程实现多个定时器示例

Python单线程实现多个定时器的示例主要分为两种方式:使用time库和使用sched库。

使用time库实现多个定时器

示例一:

import time

def func1():
    print("func1 called")

def func2():
    print("func2 called")

while True:
    now = time.strftime("%H:%M:%S", time.localtime())
    if now == "23:59:59":
        func1()
    elif now == "00:00:00":
        func2()
    time.sleep(1)

此段代码中,我们使用了time库中的strftime函数来获取系统当前时间,然后判断当前时间是否是定时器的触发时间。在示例中,我们设定了两个定时器:一个在23:59:59触发,另一个在00:00:00触发。当时间到达触发时间时,我们执行相应的函数。

示例二:

import time

def func():
    print("func called")
    time.sleep(10)

start_time = time.time()

while True:
    if time.time() - start_time > 5:
        func()
        start_time = time.time()

此段代码中,我们同样使用了time库,但这次我们利用time库的time函数以及time计算函数的差值来实现了定时器。代码中,我们定义了一个名为“func”的函数,其中包含了10秒的时间延迟。在while循环中,我们使用time函数获取当前时间,并计算当前时间与开启程序的时间差值是否大于5秒,如果大于5秒,我们执行相应的函数并将时间重置。

使用sched库实现多个定时器

示例一:

import sched
import time

s = sched.scheduler(time.time, time.sleep)

def func1():
    print("func1 called at", time.strftime("%H:%M:%S", time.localtime()))

def func2():
    print("func2 called at", time.strftime("%H:%M:%S", time.localtime()))

s.enterabs(time.mktime(time.strptime("23:59:59", "%H:%M:%S")), 1, func1, ())
s.enterabs(time.mktime(time.strptime("00:00:00", "%H:%M:%S")), 1, func2, ())

s.run()

此段代码中,我们使用了sched库中的scheduler函数来创建了一个调度器。使用enterabs函数我们设定了两个定时器,一个在23:59:59触发,另一个在00:00:00触发,当时间到达触发时间时,我们执行相应的函数。

示例二:

import sched
import time

s = sched.scheduler(time.time, time.sleep)

def func(sc):
    print("func called at", time.strftime("%H:%M:%S", time.localtime()))
    s.enter(5, 1, func, (sc,))

s.enter(5, 1, func, (s,))
s.run()

此段代码同样使用了sched库中的scheduler函数创建了一个调度器,但此次我们使用了enter函数来实现了定时器。代码中,我们定义了一个名为“func”的函数,并使用s.enter函数定时执行。在函数内部,我们打印出当前时间,并使用s.enter函数将函数自身加入调度器中实现了循环调用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python单线程实现多个定时器示例 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 教你在Excel中调用Python脚本实现数据自动化处理的方法

    下面我会为你介绍使用Excel调用Python脚本实现数据自动化处理的方法。 一、安装Python和必需的Python库 要在Excel中使用Python,您需要首先在计算机上安装Python和必要的Python库。以下是安装步骤: 下载并安装Python:进入Python官网https://www.python.org/downloads/,下载并安装您所…

    python 2023年5月13日
    00
  • 详解python使用canvas实现移动并绑定键盘

    下面是一份详细的攻略,包含使用Python的canvas实现移动并绑定键盘的完整流程和两个示例说明。 目录 简介 步骤 示例 #1 示例 #2 总结 简介 Python的tkinter模块提供了Canvas(画布)这个组件,使用它可以创建一个可交互的画布,并在上面绘制图片、几何形状、文本等元素。此外,Canvas也支持事件绑定,可以通过事件响应函数实现交互功…

    python 2023年6月13日
    00
  • Python使用正则表达式过滤或替换HTML标签的方法详解

    以下是“Python使用正则表达式过滤或替换HTML标签的方法详解”的完整攻略: 一、问题描述 在Python中,我们可以使用正则表达式来过滤或替换HTML标签。本文将详细讲解Python使用正则表达式过滤或替换HTML标签的方法,以及如何在实际开发中应用。 二、解决方案 2.1 过滤HTML标签的方法 在Python中,过滤HTML标签的方法可以使用正则表…

    python 2023年5月14日
    00
  • python获取文件扩展名的方法

    获取文件扩展名是Python中常见的操作之一,可以使用以下两种方法来获取文件扩展名: 方法一:使用split()方法 使用split()方法可以将文件名拆分成文件名和扩展名,并返回一个列表,其中第二个元素即为扩展名。 file_name = "example.jpg" file_ext = file_name.split(".&…

    python 2023年6月5日
    00
  • python如何实现常用的五种排序算法详解

    下面是关于“Python实现常用的五种排序算法详解”的完整攻略。 1. 排序算法理论基础 排序算法是一种常用的算法,它可以一组数据按照一定的规则进行排序。常用的排序算法有五种,分别是冒泡排序、选择排序、插入排序、速排序和归并排序。 1.1 冒泡排序 冒泡排序是一种简单的排序算法,它的基本思想是通过邻元素之间的较和交换来实现排序。具体实现过程是从第一个元素开始…

    python 2023年5月13日
    00
  • 利用python爬取软考试题之ip自动代理

    “利用python爬取软考试题之ip自动代理”可以分为以下几个步骤: 爬虫基础:安装相关库(requests, BeautifulSoup, lxml),编写基础爬虫代码,如下所示: import requests from bs4 import BeautifulSoup url = ‘http://www.example.com’ response = …

    python 2023年5月13日
    00
  • Python中函数的定义及其调用

    下面是关于“Python中函数的定义及其调用”的完整攻略。 函数的定义 在Python中,可以使用def关键字来定义一个函数。 一般来说,函数的定义包括以下几个重要部分: 函数名 函数名是调用函数时使用的名称,可以是任何有效的命名规则,但最好不要使用Python中的关键字。通常,函数名应该描述函数的功能。 参数 函数可以接受多个参数,也可以不接受参数。参数可…

    python 2023年5月20日
    00
  • Python对字符串实现去重操作的方法示例

    下面是关于“Python对字符串实现去重操作的方法示例”的详细攻略。 1. 去重操作的目的和方法 去重操作的目的是为了消除字符串中的重复项,使字符串中的元素互不相同。Python提供了多种去重方法,这里介绍其中两种常用的方法。 1.1 使用set()函数进行去重 使用Python自带的set()函数可以很方便地对字符串进行去重操作。具体方法如下: str1 …

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部