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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
python不带重复的全排列代码
Aug 13 Python
python实现目录树生成示例
Mar 28 Python
Python NumPy库安装使用笔记
May 18 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
python实现控制COM口的示例
Jul 03 Python
Python的对象传递与Copy函数使用详解
Dec 26 Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
关于Numpy之repeat、tile的用法总结
Jun 02 Python
python语言中pandas字符串分割str.split()函数
Aug 05 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中的字符串函数
2006/10/09 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
Python 面向对象 成员的访问约束
2008/12/23 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
Python3 批量扫描端口的例子
2019/07/25 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
python 实现兔子生兔子示例
2019/11/21 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
如何用Django处理gzip数据流
2021/01/29 Python
自我评价怎么写好呢?
2013/12/05 职场文书
销售会计岗位职责
2014/03/15 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python
排查MySQL生产环境索引没有效果
2022/04/11 MySQL