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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
为Python的web框架编写前端模版的教程
Apr 30 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 Python
python实现装饰器、描述符
Feb 28 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
python tornado修改log输出方式
Nov 18 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
解决python 找不到module的问题
Feb 12 Python
Python字典和列表性能之间的比较
Jun 07 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
改进的IP计数器
2006/10/09 PHP
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JavaScript this调用规则说明
2010/03/08 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
python使用cPickle模块序列化实例
2014/09/25 Python
Python字典底层实现原理详解
2019/12/18 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
Python @property原理解析和用法实例
2020/02/11 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
python zip()函数的使用示例
2020/09/23 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
二手房买卖协议书
2014/04/10 职场文书
2014年手术室工作总结
2014/11/26 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
python实现批量移动文件
2021/04/05 Python
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android