python线程定时器Timer实现原理解析

yipeiwu_com6年前Python基础

这篇文章主要介绍了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设计】。

相关文章

python递归计算N!的方法

本文实例讲述了python递归计算N!的方法。分享给大家供大家参考。具体实现方法如下: def factorial(n): if n == 0: return 1 e...

django 自定义过滤器(filter)处理较为复杂的变量方法

简述:django 在views中有数据需要通过字典(dict)的方式传递给template,该字典中又包含了字典,而且字典中的键值还是一个对象,在template中处理传递过来的数据的...

window7下的python2.7版本和python3.5版本的opencv-python安装过程

花费了整整2天的时间终于学会安装了opencv,换系统的心都有了,由于ubuntu实在不会玩,看来还是老老实实在windows下安装吧,以此作为记录方便以后安装 python2.7版本的...

python SQLAlchemy 中的Engine详解

python SQLAlchemy 中的Engine详解

先看这张图,这是从官方网站扒下来的。 Engine 翻译过来就是引擎的意思,汽车通过引擎来驱动,而 SQLAlchemy 是通过 Engine 来驱动,Engine 维护了一个连接池(...

python 异或加密字符串的实例

做个简单习题:输入明文给定秘钥,密文还原,按位异或处理。 import base64 as b64 def xor_encrypt(tips,key): ltips=len(ti...