threading的Timer模块其实并非完全异步的, 当任务时间大于定时间隔时, 并不能保证任务按设置的定时间隔执行。
当任务时间小于定时间隔时, 任务是按设置的定时间隔执行的。
import time
from threading import Timer
def func1():
## 模拟一个耗时的操作
a = []
number = 10000000
for i in range(number):
a.append(i)
if i == 0:
print("^" * 200)
if i % (number // 10) == 0: ##控制最多打印10个, 避免刷屏
print("func1", time.time(), i)
time.sleep(2)
def timer_test():
func1()
timer = Timer(interval=1, function=timer_test)
timer.start()
if __name__ == '__main__':
timer_test()