线程之一讲了线程,如果不熟悉,可以点击【线程之一:线程的创建、启动及运行方式】
1、定时器实质:
Timer 定时器源码实现,和我们自定义一个线程方式一样,都是继承了 Thread 类,重写了 run() 方法,只是实现的功能是,延时执行一个函数或方法。
2、线程定时器(Timer)解释:
- Timer类是Thread的子类,只加入了时间延迟功能
- Thread 和 Timer 对象都用 start() 方法启动
- 启动Timer后,等于单独启动一个线程,为非阻塞的
通过源码看出 Timer 类继承了 Thread 类class Timer(Thread): Timer 类的构造函数是这样的,下面做以下参数说明def __init__(self, interval, function, args=None, kwargs=None):# 定时器启动后,经过interval秒后,启动function函数,# function函数的参数是 args 形式或 kwargs 形式interval:时间(秒)function:函数名args:function的参数,元组形式kwargs:function的参数,字典形式
3、Thread 和 Timer 的实例化对比:
Timer 和 Thread 最根本不同是,加入了一个时间参数(interval),如下:
# 线程的定义及启动from threading import Threaddef work(): print('工作中')t = Thread(target=work) # 启动后,立即执行 work 函数t.start()# 打印返回:工作中# 定时器的定义及启动from threading import Timerdef work(): print('工作中')t = Timer(2, work) # 启动后,等待2秒,再执行work 函数t.start()# 打印返回:工作中
4、Timer 的两种用法
正常用法:启动后,延时执行函数或方法
特殊用法:每隔 2 秒,执行一次函数或方法,就是不断地启动定时器
喜欢关注、点赞哦