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日

相关文章

  • python列表的问题

    【问题标题】:problem with python listpython列表的问题 【发布时间】:2023-04-04 00:49:01 【问题描述】: 您好,我正在尝试创建一个列表,通过 for 循环从 txt 文件中逐行读取。我在列表中遇到语法错误,但不确定如何解决问题??? import re file = open(“text.txt”,”r”) …

    Python开发 2023年4月6日
    00
  • 对python中url参数编码与解码的实例详解

    对Python中Url参数编码与解码的实例详解 在Web开发中,URL 参数的传递是非常常见的方式,而 URL 参数也常常需要进行编码/解码的处理,这里我们介绍 Python 中常用的 URL 参数编码与解码方法,以及实例说明。 URL 编码 URL 编码是将 URL 参数中的非字母和数字的字符转换成特殊字符序列,以便浏览器和服务器可以处理这些字符。Pyth…

    python 2023年5月31日
    00
  • 关于Python中 循环器 itertools的介绍

    关于 Python 中循环器 itertools 的介绍,可以分为以下几点: 1. itertools 简介 itertools 是 Python 中的一个标准模块,包含了很多迭代器生成的工具,可以帮助我们更方便和高效地进行迭代操作。其中包含的几个常用函数有: count(start=0, step=1) :用于创建一个从 start 开始的数列,每次增加 …

    python 2023年6月3日
    00
  • Python 字符串使用多个分隔符分割成列表的2种方法

    使用多个分隔符将字符串分割成列表通常是在数据处理和解析文本时非常有用的一种技巧。Python 提供了多种方法实现该功能,本文将介绍两种常用的方法。 方法一:使用 re 模块 Python re 模块提供了丰富的正则表达式支持,可以用来处理字符串的复杂匹配和替换。使用 re.split() 方法可以方便地将字符串按照多个不同的分隔符分割成列表。 import …

    python 2023年5月14日
    00
  • Python常见反爬虫机制解决方案

    Python常见反爬虫机制解决方案 前言 随着爬虫技术的不断发展,网站也开始有意识的采取反爬虫机制来限制爬虫对网站的访问。Python作为一种常用的爬虫语言,需要我们找到一些解决方案来应对这些反爬虫机制。 验证码识别 验证码是一种常见的反爬虫机制,它可以有效防止机器人恶意爬取网站数据。验证码识别技术可以用来破解验证码,从而突破这种反爬虫机制,使爬虫可以访问这…

    python 2023年5月14日
    00
  • 基于Python实现五子棋-(人机对战)

    基于 Python 实现五子棋 – (人机对战)攻略 项目简介 五子棋是一种两个人对弈的游戏。该游戏使用棋盘和棋子,在棋盘上逐步落子,目标是在棋盘上先形成一条连续的、由自己的棋子构成的直线而获胜。 这个项目是通过 Python 实现的基础版五子棋,玩家可以选择与 AI 进行人机对战。该游戏最终的目标是让玩家了解到如何运用 Python 语言进行基础游戏开发以…

    python 2023年5月23日
    00
  • Python中音频处理库pydub的使用教程

    Python中音频处理库pydub的使用教程 简介 pydub是python中一个强大的音频处理库,可以进行音频文件的读取、剪辑、转换等操作,而且支持多种音频格式。本教程将详细介绍pydub的使用方法。 安装 使用pip安装pydub库 pip install pydub 安装FFmpeg.exe文件,用于pydub库读取多种音频文件格式。前往官网下载并安装…

    python 2023年6月5日
    00
  • Python入门之模块和包用法详解

    Python入门之模块和包用法详解 在Python中,模块(module)是一个包含Python定义和声明的文件。模块可以定义函数,类和变量,模块也可以包含可以执行的代码。包(package)是一种将模块组织在一起的方法,它是将相关的模块分组并组织在一起,以便于维护和管理功能模块的代码的方式。 模块的导入 我们可以用import语句将模块导入到Python脚…

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