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 相关文章推荐
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
python实现简单的单变量线性回归方法
Nov 08 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
Django的Modelforms用法简介
Jul 27 Python
Python3 实现减少可调用对象的参数个数
Dec 20 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
在keras中获取某一层上的feature map实例
Jan 24 Python
python实现拼图小游戏
Feb 22 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
520使用Python实现“我爱你”表白
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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
晨会主持词
2014/03/17 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
材料员岗位职责范本
2015/04/11 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL