python做中学(九)定时器函数的用法
程序中,经常用到这种,就是需要固定时间执行的,或者需要每隔一段时间执行的。这里经常用的就是Timer定时器。Thread 类有一个 Timer子类,该子类可用于控制指定函数在特定时间内执行一次。
可以用几个例子来说明Timer的用法,
一 最简单的用法,N s后(2s)后执行:
#python3 example
from threading import Timer
import time def hello_test():
print("hello world") t = Timer(2.0,hello_test)
t.start()
运行结果:
➜ timer git:(master) ✗ py timer_test1.py
hello world
二 每隔一秒执行一次,执行十次:
#python3 example
from threading import Timer
import time count = 0
def print_timer():
global t, count
print("count:%d new time: %s" % (count,time.ctime()))
count += 1 if count < 10:
t = Timer(1, print_timer)
t.start() t = Timer(1.0, print_timer)
t.start()
运行结果:
➜ timer git:(master) ✗ py timer_test2.py
count:0 new time: Tue Aug 20 14:20:13 2019
count:1 new time: Tue Aug 20 14:20:14 2019
count:2 new time: Tue Aug 20 14:20:15 2019
count:3 new time: Tue Aug 20 14:20:16 2019
count:4 new time: Tue Aug 20 14:20:17 2019
count:5 new time: Tue Aug 20 14:20:18 2019
count:6 new time: Tue Aug 20 14:20:19 2019
count:7 new time: Tue Aug 20 14:20:20 2019
count:8 new time: Tue Aug 20 14:20:21 2019
count:9 new time: Tue Aug 20 14:20:22 2019
三 带参数输入的timer,每隔一秒执行一次,执行十次:
#python3 example
from threading import Timer
import time def print_val(cnt):
print("cnt:%d new time: %s" % (cnt,time.ctime()))
cnt += 1 if cnt < 10:
t = Timer(1, print_val,(cnt,))
t.start()
else:
return t = Timer(2.0, print_val,(1,))
t.start()
运行结果:
➜ timer git:(master) ✗ py timer_test.py
cnt:1 new time: Tue Aug 20 14:23:31 2019
cnt:2 new time: Tue Aug 20 14:23:32 2019
cnt:3 new time: Tue Aug 20 14:23:33 2019
cnt:4 new time: Tue Aug 20 14:23:34 2019
cnt:5 new time: Tue Aug 20 14:23:35 2019
cnt:6 new time: Tue Aug 20 14:23:36 2019
cnt:7 new time: Tue Aug 20 14:23:37 2019
cnt:8 new time: Tue Aug 20 14:23:38 2019
cnt:9 new time: Tue Aug 20 14:23:39 2019
从上面的例子可以看出,timer的基本用法是比较简单的,这个是不是对你有用呢?
参考文档:
1 http://c.biancheng.net/view/2629.html
python做中学(九)定时器函数的用法的更多相关文章
- python做中学(一)全局变量的用法
一段时间没有使用python来写代码,就发现以前学习的很多语法都忘了.看来还是当初这方面的项目做的好不够多,没有系统性的运用和学习,导致了很多语法不能顺手拈来.在接下来的这个项目中, 一定要把遇到的一 ...
- python做中学(八)匿名函数lambda的用法
匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返回值,而def创建后则赋值给一个变量名,在P ...
- python做中学(四)main函数的用法
什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. main函数的作用? __name__ == '__main_ ...
- python做中学(二)bool()函数的用法
定义: bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False. bool 是 int 的子类. 语法: 以下是 bool() 方法的语法: class bool([x] 参数 ...
- python做中学(七)ord() 函数
描述 ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII ...
- python做中学(六)os.getcwd() 的用法
概述 os.getcwd() 方法用于返回当前工作目录. 语法 getcwd()方法语法格式如下: os.getcwd() 参数 无 返回值 返回当前进程的工作目录. 实例 以下实例演示了 getcw ...
- python做中学(三)条件编译的用法
C代码中经常使用条件编译,python中该怎么用呢?Python没有像C或C或Java甚至Java一样编译,python文件被“即时”编译,您可以将其视为类似于Basic或Perl的解释语言 只需使用 ...
- python做中学(五)多线程的用法
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条 ...
- python学习笔记之open函数的用法
先上一段代码 >>> f = open('1.txt','r'); >>> f.readline() #读取数据>>> f.close() #关闭 ...
随机推荐
- 基于Redis扩展模块的布隆过滤器使用
什么是布隆过滤器?它实际上是一个很长的二进制向量和一系列随机映射函数.把一个目标元素通过多个hash函数的计算,将多个随机计算出的结果映射到不同的二进制向量的位中,以此来间接标记一个元素是否存在于一个 ...
- 数据库 tcp协程实现并发 回调函数
数据库 tcp协程实现并发 回顾 一.回顾 进程池,线程池,回调函数 # from gevent import monkey;monkey.patch_all() #补丁 from gevent im ...
- celery执行异步任务和定时任务
一.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件 ...
- Linux系统学习 十六、VSFTP服务—本地用户访问—基本用户基础配置
缺点,ftp密码是和系统密码是一致的,并不安全 先设置两个测试用户 test1 123123 test2 123123 基本用户基础配置 1.本地用户基本配置 local_enab ...
- mysql研究跟进
count(1)对比 count(*) count(N),N指的是列的序列号,innodb引擎下一般为主键列:count(*),mysql优化器也会将统计列自动优化.所以日常使用区别不大 阿里规范里的 ...
- TypeScript初体验
第一次运行TypeScript 1.创建文件夹并初始化项目 mkdir ts-demo cd ts-demo npm init -y 2.安装typescript与ts-node # 局部安装 npm ...
- 如何使用终端默认情况下阻止Mac应用保存到iCloud
当您保存要在Mac上的Pages,Numbers,TextEdit或其他基于云的应用程序中处理的文档时,该保存的默认位置是iCloud.尽管这对某些人或某些文档来说可能是一件好事,但您可能会厌倦每次更 ...
- dp习题
仅收录有意思的题目 数的划分 导弹拦截 : LIS的两种优化 教主的花园:将不同的情况分类,最后取max 午餐 & 挂饰: 需要排序 挂饰:0-1背包处理负数体积 投资的最大效益 : 完全背包 ...
- 【Unity游戏开发】Android6.0以上的动态权限申请问题
一.引子 最近公司的游戏在做安全性测试,期间也暴露出了不少安全上的问题.虽然我们今天要说的权限申请和安全性相关不大,但是也会影响到游戏的使用体验等,所以本篇博客中马三就想和大家谈谈Android6.0 ...
- Spring 框架基础(02):Bean的生命周期,作用域,装配总结
本文源码:GitHub·点这里 || GitEE·点这里 一.装配方式 Bean的概念:Spring框架管理的应用程序中,由Spring容器负责创建,装配,设置属性,进而管理整个生命周期的对象,称为B ...