这篇文章主要介绍了python线程定时器Timer实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一.线程定时器Timer原理
原理比较简单,指定时间间隔后启动线程!适用场景:完成定时任务,例如:定时提醒-闹钟等等.
# 导入线程模块 import threading timer = threading.Timer(interval, function, args=None, kwargs=None)
参数介绍:
interval — 定时器间隔,间隔多少秒之后启动定时器任务(单位:秒);
function — 线程函数;
args — 线程参数,可以传递元组类型数据,默认为空(缺省参数);
kwargs — 线程参数,可以传递字典类型数据,默认为空(缺省参数);
二.线程定时器使用
使用场景:定时闹钟
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址): shuopython.com @WeChat Official Account(微信公众号):猿说python @Github:www.github.com @File:python_timer.py @Time:2019/10/22 21:25 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ # 导入线程模块 import threading def thread_Timer(): print("该起床啦...5秒之后再次呼叫你起床...") # 声明全局变量 global t1 # 创建并初始化线程 t1 = threading.Timer(5,thread_Timer) # 启动线程 t1.start() if __name__ == "__main__": # 创建并初始化线程 t1 = threading.Timer(5, thread_Timer) # 启动线程 t1.start()
输出结果:
该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床... 该起床啦...5秒之后再次呼叫你起床...
代码分析:
在主线程创建了线程定时器,在5秒之后执行thread_Timer线程函数,而在thread_Timer函数结束的时候,又设置了定时器线程thread_Timer,这就完成了一个递归的操作,间隔5秒重复定时任务!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍详解Python 多线程 Timer定时器/延迟执行、Event事件,包括了详解Python 多线程 Timer定时器/延迟执行、Event事件的使用技巧和注意事项,需要的朋友参考一下 Timer继承子Thread类,是Thread的子类,也是线程类,具有线程的能力和特征。这个类用来定义多久执行一个函数。 它的实例是能够延迟执行目标函数的线程,在真正执行目标函数之前,都可以cance
本文向大家介绍Java线程池FutureTask实现原理详解,包括了Java线程池FutureTask实现原理详解的使用技巧和注意事项,需要的朋友参考一下 前言 线程池可以并发执行多个任务,有些时候,我们可能想要跟踪任务的执行结果,甚至在一定时间内,如果任务没有执行完成,我们可能还想要取消任务的执行,为了支持这一特性,ThreadPoolExecutor提供了 FutureTask 用于追踪任务的
本文向大家介绍Java 定时器(Timer)及线程池里使用定时器实例代码,包括了Java 定时器(Timer)及线程池里使用定时器实例代码的使用技巧和注意事项,需要的朋友参考一下 java Timer定时器 简单实例代码: 线程池里的定时器 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文向大家介绍JavaScript定时器实现的原理分析,包括了JavaScript定时器实现的原理分析的使用技巧和注意事项,需要的朋友参考一下 JavaScript中的定时器大家基本在平时的开发中都遇见过吧,但是又有多少人去深入的理解其中的原理呢?下面我们就来分析一下定时器的实现原理。 一、储备知识 在我们在项目中一般会遇见过这样的两种定时器,第一种是setTimeOut,第二种是setInter
本文向大家介绍Python Socket多线程并发原理及实现,包括了Python Socket多线程并发原理及实现的使用技巧和注意事项,需要的朋友参考一下 1.SocketServer模块编写的TCP服务器端代码 Socketserver原理图 服务端: 客户端: 2.基于Python Socketserver的实现的FTP程序 服务端: 客户端: 以上就是Python Socket多线程
稳定性: 2 - 稳定的 timer 模块暴露了一个全局的 API,用于在某个未来时间段调用调度函数。 因为定时器函数是全局的,所以使用该 API 无需调用 require('timers')。 Node.js 中的计时器函数实现了与 Web 浏览器提供的定时器类似的 API,除了它使用了一个不同的内部实现,它是基于 Node.js 事件循环构建的。 Immediate 类 该对象是内部创建的,并