python 轮询执行某函数的2种方式


Posted in Python onMay 03, 2020

目标:python中每隔特定时间执行某函数

方法1:使用python的Thread类的子类Timer,该子类可控制指定函数在特定时间后执行一次:

所以为了实现多次定时执行某函数,只需要在一个while循环中多次新建Timer即可。

from threading import Timer
import time
 
def printHello():
 print ("Hello")
 print("当前时间戳是", time.time())
 
def loop_func(func, second):
 #每隔second秒执行func函数
 while True:
  timer = Timer(second, func)
  timer.start()
  timer.join()
 
loop_func(printHello, 1)

运行结果如下:

Hello
当前时间戳是 1569224253.1897497
Hello
当前时间戳是 1569224254.1911764
Hello
当前时间戳是 1569224255.1924803
Hello
当前时间戳是 1569224256.1957717
Hello
当前时间戳是 1569224257.1964536
……

方法2:使用time模块的sleep函数可以阻塞程序执行

import time
 
def printHello():
 print ("Hello")
 print("当前时间戳是", time.time())
 
def loop_func(func, second):
 # 每隔second秒执行func函数
 while True:
  func()
  time.sleep(second)
 
loop_func(printHello, 1)

运行结果如下:

Hello
当前时间戳是 1569224698.5843027
Hello
当前时间戳是 1569224699.5843854
Hello
当前时间戳是 1569224700.5870178
Hello
当前时间戳是 1569224701.5881224
Hello
当前时间戳是 1569224702.588771
Hello
当前时间戳是 1569224703.5896
Hello
当前时间戳是 1569224704.5902
……

总结:感觉方法2更节约资源,因为同样使用了while循环,方法2没有生成多余的线程,但是方法1会生成很多的线程

以上这篇python 轮询执行某函数的2种方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python计算对角线有理函数插值的方法
May 07 Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 Python
Python实现获取照片拍摄日期并重命名的方法
Sep 30 Python
详解Python中的正则表达式
Jul 08 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
详解Python是如何实现issubclass的
Jul 24 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
M1芯片安装python3.9.1的实现
Feb 02 Python
在Sublime Editor中配置Python环境的详细教程
May 03 #Python
Python 将 QQ 好友头像生成祝福语的实现代码
May 03 #Python
Python使用pdb调试代码的技巧
May 03 #Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 #Python
Python使用多进程运行含有任意个参数的函数
May 02 #Python
python多进程使用函数封装实例
May 02 #Python
Python中使用filter过滤列表的一个小技巧分享
May 02 #Python
You might like
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
PHP中常用数组处理方法实例分析
2008/08/30 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
python之wxPython菜单使用详解
2014/09/28 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
2014年专项整治工作总结
2014/11/17 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
优秀教师个人总结
2015/02/11 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
Flink 侧流输出源码示例解析
2022/09/23 Servers