用python写一个定时器,定时器可以被控制
时间: 2024-09-26 13:16:08 浏览: 39
在Python中,我们可以使用`threading`模块结合`time`模块来创建一个简单的线程定时器,这样它可以被控制(如暂停、继续或停止)。以下是一个基本的例子:
```python
import threading
import time
class TimerThread(threading.Thread):
def __init__(self, interval, function, args=()):
threading.Thread.__init__(self)
self.interval = interval
self.function = function
self.args = args
self.paused = False
def run(self):
while not self.paused:
self.function(*self.args)
time.sleep(self.interval)
# 添加控制函数
def pause(self):
self.paused = True
def resume(self):
self.paused = False
if self.is_alive(): # 确保线程未终止再恢复
self.run()
# 使用示例
def print_message():
print("Timer triggered at", time.ctime())
timer = TimerThread(5, print_message) # 每隔5秒触发print_message函数
timer.start()
# 控制定时器
time.sleep(3) # 先运行一段时间
timer.pause() # 暂停
time.sleep(2) # 再次唤醒
timer.resume() # 继续执行
```
在这个例子中,`TimerThread`类有一个`pause`方法用于暂停定时器,`resume`方法用于恢复。你可以随时调用这两个方法来控制定时任务。
阅读全文