threading.Timer()
是 Python 中的一个线程模块,用于创建一个定时器线程。它可以在指定的延迟时间后执行一个指定的函数。下面是关于 threading.Timer()
的详细介绍:
- 语法:
timer = threading.Timer(interval, function, args=None, kwargs=None)
-
参数:
interval
: 延迟的秒数,即定时器将在多久之后执行函数。function
: 要执行的函数对象。args
: 传递给函数的位置参数,类型为元组。kwargs
: 传递给函数的关键字参数,类型为字典。
-
方法:
timer.start()
: 启动定时器,会在指定的延迟时间后执行指定的函数。timer.cancel()
: 取消定时器,如果定时器还未执行,则不会执行指定的函数;如果定时器已经执行,将无法取消。
-
示例:
import threading
def print_message():
print("Timer is up!")
timer = threading.Timer(5, print_message)
timer.start()
上面的示例中,定义了一个 print_message()
函数,在创建定时器时,设置延迟时间为 5 秒后执行该函数。在调用 timer.start()
后,将会在 5 秒后打印出 “Timer is up!”。
需要注意的是,threading.Timer()
创建的定时器是一个单次性的定时器,即只会执行一次。如果需要循环执行,可以在函数体内设置一个循环并在适当的时机调用定时器自身。
import threading
def hello():
print("Hello, it's me again!")
def start_timer(interval):
timer = threading.Timer(interval, start_timer, (interval,))
timer.start()
hello()
# 初始启动一个定时器
start_timer(1)
or:
import threading
def print_message():
print("Hello, it's me again!")
# 在函数里创建定时器,延迟时间为1秒,执行函数为本身所在的函数
timer = threading.Timer(1, print_message)
timer.start()
print_message()
or:
import threading
def print_message():
print("Hello, it's me again!")
# 在定时器的执行函数里创建新的定时器,延迟时间为1秒,执行函数为本身所在的函数
new_timer = threading.Timer(1, print_message)
new_timer.start()
# 创建第一个定时器,延迟时间为1秒,执行print_message函数
timer = threading.Timer(1, print_message)
timer.start()
使用cancel()提前终止定时器:
import threading
def t1_up():
print("Timer is up!")
def t2_up():
timer1.cancel()
print('timer1 is canceled')
timer1 = threading.Timer(5, t1_up)
timer1.start()
timer2 = threading.Timer(2, t2_up)
timer2.start()