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实现BT种子和磁力链接的相互转换
Nov 09 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
python+opencv识别图片中的圆形
Mar 25 Python
Python 读写文件的操作代码
Sep 20 Python
Django在pycharm下修改默认启动端口的方法
Jul 26 Python
django 连接数据库 sqlite的例子
Aug 14 Python
python  logging日志打印过程解析
Oct 22 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
django数据模型on_delete, db_constraint的使用详解
Dec 24 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
基于python模拟bfs和dfs代码实例
Nov 19 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
PHP的面试题集
2006/11/19 PHP
php中的实现trim函数代码
2007/03/19 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
python实现保存网页到本地示例
2014/03/16 Python
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python递归函数定义与用法示例
2017/06/02 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
python求最大连续子数组的和
2018/07/07 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
印度购物网站:TATA CLiQ
2017/11/23 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
Shell如何接收变量输入
2012/09/24 面试题
大学自主招生自荐信
2013/12/16 职场文书
集体婚礼证婚词
2014/01/13 职场文书
网络编辑职责
2014/03/01 职场文书
软件项目开发计划书
2014/05/01 职场文书
经理岗位职责范本
2015/04/15 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python