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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python中几个比较常见的名词解释
Jul 04 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
Feb 18 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
Nov 25 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
基于Python制作一副扑克牌过程详解
Oct 19 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
如何用Django处理gzip数据流
Jan 29 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程序中使用Rust扩展的方法
2015/07/03 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
python变量不能以数字打头详解
2016/07/06 Python
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
快速入门python学习笔记
2017/12/06 Python
python机器学习之神经网络(一)
2017/12/20 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
八年级物理教学反思
2014/01/19 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript