使用threading.Timer()创建两个定时器
时间: 2024-05-01 18:16:14 浏览: 216
以下是使用Python中的`threading.Timer()`创建两个定时器的示例代码:
```python
import threading
# 定义定时器1的函数
def timer1():
print("Timer 1 is running...")
# do something
# 重新启动定时器1
t1 = threading.Timer(5, timer1)
t1.start()
# 定义定时器2的函数
def timer2():
print("Timer 2 is running...")
# do something
# 重新启动定时器2
t2 = threading.Timer(10, timer2)
t2.start()
# 启动定时器1,每5秒执行一次
t1 = threading.Timer(5, timer1)
t1.start()
# 启动定时器2,每10秒执行一次
t2 = threading.Timer(10, timer2)
t2.start()
```
在这个示例代码中,我们定义了两个函数`timer1()`和`timer2()`,分别代表两个定时器的执行内容。然后我们使用`threading.Timer()`创建了两个定时器`t1`和`t2`,并分别设定了它们的间隔时间。最后,我们启动了这两个定时器。
在定时器的执行过程中,我们可以在函数内部添加具体的执行逻辑,并在定时器结束时重新启动定时器,以实现循环定时的功能。
相关问题
python关闭全部定时器threading.Timer
可以使用`threading.Timer`的`cancel()`方法来取消定时器。如果你有多个定时器,可以把它们存储在一个列表中,然后遍历列表,调用每个定时器的`cancel()`方法来取消它们。
以下是一个示例代码:
```python
import threading
# 创建定时器
t1 = threading.Timer(5.0, lambda: print("Timer 1 expired"))
t2 = threading.Timer(10.0, lambda: print("Timer 2 expired"))
# 启动定时器
t1.start()
t2.start()
# 取消所有定时器
timers = [t1, t2]
for t in timers:
t.cancel()
```
在上面的代码中,我们创建了两个定时器`t1`和`t2`,并启动它们。然后,我们将它们存储在一个列表中,并遍历列表,调用每个定时器的`cancel()`方法来取消它们。
threading.Timer()
`threading.Timer()` 是 Python 标准库 `threading` 模块中的一个类,用于创建定时器。它允许在一段时间后执行一个函数,或者在一段时间间隔后周期性地执行一个函数。
`threading.Timer()` 的构造函数接受两个参数:`interval` 和 `function`。`interval` 是定时器的时间间隔,单位是秒,`function` 是需要定时执行的函数。
下面是一个简单的例子:
```python
import threading
def hello():
print("Hello, world!")
t = threading.Timer(5.0, hello)
t.start()
```
上面的代码定义了一个名为 `hello` 的函数,然后创建了一个 `threading.Timer` 对象,定时执行 `hello` 函数并且每 5 秒钟执行一次。最后,调用 `start()` 方法启动定时器。
阅读全文