一. 线程定时器Timer原理
Timer最基本的理解是定时器,可以启动多个定时任务,这些定时器任务是异步执行,所以不存在等待顺序执行顺序。
定时器只能执行一次,如果需要重复执行,需要重新添加任务。
导入模块
from threading import Timer
timer = threading.Timer(interval, function, args=None, kwargs=None)
参数介绍
interval — 定时器间隔,间隔多少秒之后启动定时器任务(单位:秒);
function — 线程函数;
args — 线程参数,可以传递元组类型数据,默认为空(缺省参数);
kwargs — 线程参数,可以传递字典类型数据,默认为空(缺省参数);
fromthreading import Timer
import time
def test1(name):
print('test1 {}'.format(name))
#每隔一秒会执行一次
timer2= Timer(1, test1, ('bob', ))
timer2.start()
def test2():
print('test2')
#前面的5是等待的时间,第三个参数是传入test1的参数,数组形式
timer= Timer(5, test1, ('alex', ))
timer.start()
# timer.cancel()#取消执行
test2()
执行结果:
二. Schedule(调度器)
Schedule是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间
方法格式功能
scheduler.enter(delay, priority, action, argument=(), kwargs={})
在 time 规定的时间后,执行