目录
定时器
每隔一段时间调用一次线程
注意事项:
(1)定时器构造函数主要有2个参数,第一个参数为时间,第二个参数为函数名,第一个参数表示多长 时间后调用后面第二个参数指明的函数。第二个参数注意是函数对象,进行参数传递,用函数名(如fun_timer)表示该对象,不能写成函数 执行 语句fun_timer(),不然会报错。
(2)必须在定时器执行函数内部重复构造定时器,因为定时器构造后只执行1次,必须循环调用。
(3)定时器间隔单位是秒,可以是浮点数,如5.5,0.02等,在执 行函数fun_timer内部和外部中给的值可以不同。如上例中第一次执行fun_timer是1秒后,后面的都是5.5秒后执行。
(4)可以使用cancel停止定时器的工作
创建定时器:
threading.Timer(interval, function, args=None, kwargs=None)
interval — 定时器间隔,间隔多少秒之后启动定时器任务(单位:秒);
function — 线程函数;
args — 线程参数,可以传递元组类型数据,默认为空(缺省参数);
kwargs — 线程参数,可以传递字典类型数据,默认为空(缺省参数);
使用threading的 Timer 类
start() 为通用的开始执行方法
cancel ()为取消执行的方法
案例:
# 需求:
# 使用定时器实现当前时间每秒循环输出一次
import threading
import time
def run():
# 获取当前时间
strtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(strtime)
t1 = threading.Timer(1, function=run) #每1秒钟启动一次run函数
t1.start()
#主线程
if __name__ == '__main__':
#启动线程
th=threading.Timer(1,function=run)
th.start()