Python高级之定时器

  • 定时器

定时器

如果需要使用定时器去触发一些事件,Python中通过线程实现定时器timer,定时器的意思也是:一段时间后调用一个函数。

用法:

import threadingdef fun_timer():print('Hello Timer!')
timer = threading.Timer(1, fun_timer)
timer.start()

注意:必须在定时器执行函数内部重复构造定时器,因为定时器构造后只执行1次,必须循环调用。
拓展:可以使用cancel停止定时器的工作timer.cancel()

import threadingdef fun_timer():print('Hello Timer!')
timer = threading.Timer(1, fun_timer)
timer.start()
timer.sleep(20)  # 20秒后关闭
timer.cancel()

本次作业:

"""第一个线程中获取当前时间,判断当前时间3秒之后,触发“事件”对象。
在另一个线程中,作为数学考试结束的判断变量,否则一直处于考试中"""
import datetime
import threading
import timeclass time0(threading.Thread):  # 定义一个类,继承父类threaing的Thread方法def __init__(self, name):super(time0, self).__init__()self.name = namedef run(self):  # 定义运行函数time3 = time.ctime(time.time())  # 获取当前的时间while True:  # 循环if event.is_set():  # 如果事件执行,输出 考试结束,事件不执行则输出考试中print("考试结束%s%s" % (self.name, time3))else:print("考试中·······")class set_event(threading.Thread):  # 定义一个类,继承父类threaing的Thread方法def __init__(self):super(set_event, self).__init__()def run(self):  # 定义运行函数time1 = time.time()  # 获取当前的事件while True:  # 循环time2 = time.time()  # 获取当前时间time_minus = (time2 - time1)  # 获取时间差t = int(time_minus)  # 强制转换为int型# print(t)if t >= 3:  # 判断,如果时间差大于3秒,则执行事件event.set()# event.clear()if __name__ == '__main__':  # 主方法event = threading.Event()  # 定义事件time_ = time0("当前时间是")  # 实例化对象定义线程传参set_event_ = set_event()  # 实例化对象定义线程time_.start()  # 启动线程set_event_.start()  # 启动线程

【Python高级之定时器】相关推荐

  1. python架构师培训课程_Python从零到架构师课程 六大阶段Python高级课程+项目实战 尚学堂全方位Python课程...

    Python从零到架构师课程  六大阶段Python高级课程+项目实战 尚学堂全方位Python课程 3.JPG (31.16 KB, 下载次数: 1) 2019-9-17 23:36 上传 2.JP ...

  2. Python高级特性:切片、迭代、列表生成式、生成器与迭代器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程 ...

  3. Python高级特性——切片(Slice)

    Python高级特性--切片(Slice) 摘录廖雪峰网站 定义一个list: L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >> ...

  4. python验证中心极限定理_我竟然混进了Python高级圈子!

    原标题:我竟然混进了Python高级圈子! 现如今,计算机科学.人工智能.数据科学已成为技术发展的主要推动力. 无论是要翻阅这些领域的文章,还是要参与相关任务,你马上就会遇到一些拦路虎: 想过滤垃圾邮 ...

  5. python数据库模块_十二、Python高级功能之Mysql数据库模块

    Python高级功能之Mysql数据库模块 安装python mysql组件 # yum -y install MySQL-python.x86_64 以下根据实例来说明: >>> ...

  6. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  7. python高级开发面试题_python面试的100题(16)

    Python高级 元类 42.Python中类方法.类实例方法.静态方法有何区别? 类方法: 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对 ...

  8. PYTHON高级全栈开发工程师-老男孩教育

    PYTHON高级全栈开发工程师 最近开班日期:2016年4月17号                               课程周期:4至4.5个月 学习方式:全脱产面授学习(周一至周五,早9:3 ...

  9. 已知x=python是一种非常好的编程语言-为什么用Python,高级的Python是一种高级编程语言...

    Python特性 如果有人问我Python最大的特点是什么,我会毫不犹豫地告诉他:它简单易学,功能强大.作为一个纯自由软件,Python有许多优点: 很简单.基于"优雅".&quo ...

最新文章

  1. 女皇万岁!我们是来送礼的 ——阿里聚安全春天系列全套大礼包
  2. 【bootstrap组件】几个常用的好用bs组件
  3. Delphi中多线程用Synchronize实现VCL数据同步显示
  4. 第十周项目1-程序填空与阅读(一)
  5. Java笔记-对tomcat进一步认识
  6. Go Web 编程--如何确保Cookie数据的安全传输
  7. java suppliers_java8的Supplier
  8. Android安全:Hook技术
  9. 九大内置对象和servlet生命周期
  10. 使用 laravel-admin 配置后台管理系统
  11. 网页如何开启Gzip压缩
  12. 天翎myAppsSetup_V4.4.sp10系统结构图
  13. 为Exynos4412移植2022版U-Boot(一)步骤及其原理分析
  14. 三星董事长去世享年78岁,临终前最为遗憾的一件事
  15. POJ 3422 Kaka's Matrix Travels(拆点+最大费用流)题解
  16. 手机(局域网)远程连接 windows电脑
  17. 大学计算机基础网络应用第二套,大学计算机基础)应用指导(第2版
  18. 陪伴我成长的学习工作邮箱品牌——TOM邮箱
  19. NBA篮球经典动画gif系列连载之三
  20. 微信小程序独家秘笈之抽奖大转盘

热门文章

  1. echarts学习备忘
  2. 注册公司避开这3个坑,通过率提升99%!
  3. 实验吧登陆一下好吗??WP
  4. 智能机房动环监控方案
  5. ChatGPT作者John Shulman:我们成功的秘密武器
  6. lol手游内测服务器什么时候维护好,LOL手游第二次内测开启?网友预测:正式服春节前可以上线...
  7. 在 Linux 中移除从源代码安装的程序的一种简单的方法
  8. oracle包校验和失败怎么回事,lol更新包md5校验失败怎么回事_更新lol提示更新包MD5校验失败如何处理-win7之家...
  9. 【BX学习之支付流程】收银机的支付流程手记
  10. MySQL8.0.28安装教程