求多个定时器并行计时的程序并附加说明谢谢
以下是一个使用Python的程序示例,可以创建多个定时器并行计时:
import threading import time
定义一个计时器类
class Timer(threading.Thread): def init(self, interval, function, args=None, kwargs=None): threading.Thread.init(self) self.interval = interval self.function = function self.args = args or [] self.kwargs = kwargs or {} self.finished = threading.Event()
def cancel(self):
"""停止计时器"""
self.finished.set()
def run(self):
"""运行计时器"""
while not self.finished.is_set():
self.function(*self.args, **self.kwargs)
self.finished.wait(self.interval)
定义多个计时器函数
def timer1(): print("Timer 1: %s" % time.ctime())
def timer2(): print("Timer 2: %s" % time.ctime())
def timer3(): print("Timer 3: %s" % time.ctime())
创建多个计时器实例并启动
t1 = Timer(1, timer1) t2 = Timer(2, timer2) t3 = Timer(3, timer3) t1.start() t2.start() t3.start()
等待计时器完成
time.sleep(10)
停止计时器
t1.cancel() t2.cancel() t3.cancel()
说明:
-
首先定义了一个计时器类Timer,它继承自threading.Thread类,可以在单独的线程中运行并计时。Timer类的构造函数接收四个参数:计时器间隔interval、计时器函数function、计时器函数参数args和计时器函数关键字参数kwargs。
-
Timer类有两个方法:cancel()和run()。cancel()方法用于停止计时器,它会设置finished属性为True,run()方法用于运行计时器,它会在每个间隔时间内调用计时器函数function。
-
接下来定义了三个计时器函数timer1、timer2和timer3,它们分别在1秒、2秒和3秒的间隔内输出当前时间。
-
创建三个计时器实例t1、t2和t3,并启动它们。
-
等待计时器完成,这里等待了10秒。
-
停止计时器,调用cancel()方法停止计时器。
这个程序可以创建多个定时器并行计时,每个定时器可以有自己的计时器函数和计时器间隔。可以根据需要修改计时器函数和间隔来满足不同的需求
原文地址: https://www.cveoy.top/t/topic/ezmg 著作权归作者所有。请勿转载和采集!