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的ORM框架SQLObject入门实例
Apr 28 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
Python csv文件记录流程代码解析
Jul 16 Python
解析python 类方法、对象方法、静态方法
Aug 15 Python
Python3如何在服务器打印资产信息
Aug 27 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 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
PHP MSSQL 存储过程的方法
2008/12/24 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
Python Trie树实现字典排序
2014/03/28 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Django实现快速分页的方法实例
2017/10/22 Python
python自动裁剪图像代码分享
2017/11/25 Python
python爬取微信公众号文章
2018/08/31 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
pandas的qcut()方法详解
2019/07/06 Python
Python多线程正确用法实例解析
2020/05/30 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
华为python面试题
2016/05/03 面试题
行政部工作岗位职责范本
2014/03/05 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
焦裕禄观后感
2015/06/03 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python
python高温预警数据获取实例
2022/07/23 Python