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实现将n个点均匀地分布在球面上的方法
Mar 12 Python
Python实现处理管道的方法
Jun 04 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
Python tkinter三种布局实例详解
Jan 06 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
python实现mean-shift聚类算法
Jun 10 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 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具体实现代码
2010/10/12 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
php实现简单洗牌算法
2013/06/18 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
JavaScript 动态生成方法的例子
2009/07/22 Javascript
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
Python 转义字符详细介绍
2017/03/21 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
python 字典访问的三种方法小结
2019/12/05 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
青年文明号事迹材料
2014/01/18 职场文书
新教师工作感言
2014/02/16 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
党员年度个人总结
2015/02/14 职场文书
中秋节慰问信
2015/02/15 职场文书