python通过线程实现定时器timer的方法


Posted in Python onMarch 16, 2015

本文实例讲述了python通过线程实现定时器timer的方法。分享给大家供大家参考。具体分析如下:

这个python类实现了一个定时器效果,调用非常简单,可以让系统定时执行指定的函数

下面介绍以threading模块来实现定时器的方法。

使用前先做一个简单试验:

import threading
def sayhello():
    print "hello world"
    global t    #Notice: use global variable!
    t = threading.Timer(5.0, sayhello)
    t.start()
t = threading.Timer(5.0, sayhello)
t.start()

运行结果如下:

>python hello.py
hello world
hello world
hello world

下面是定时器类的实现:

class Timer(threading.Thread):
    """
    very simple but useless timer.
    """
    def __init__(self, seconds):
        self.runTime = seconds
        threading.Thread.__init__(self)
    def run(self):
        time.sleep(self.runTime)
        print "Buzzzz!! Time's up!"
class CountDownTimer(Timer):
    """
    a timer that can counts down the seconds.
    """
    def run(self):
        counter = self.runTime
        for sec in range(self.runTime):
            print counter
            time.sleep(1.0)
            counter -= 1
        print "Done"
class CountDownExec(CountDownTimer):
    """
    a timer that execute an action at the end of the timer run.
    """
    def __init__(self, seconds, action, args=[]):
        self.args = args
        self.action = action
        CountDownTimer.__init__(self, seconds)
    def run(self):
        CountDownTimer.run(self)
        self.action(self.args)
def myAction(args=[]):
    print "Performing my action with args:"
    print args
if __name__ == "__main__":
    t = CountDownExec(3, myAction, ["hello", "world"])
    t.start()

以上代码在Python 2.5.4中运行通过

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python3使用requests发闪存的方法
May 11 Python
python2.7的编码问题与解决方法
Oct 04 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
Django forms组件的使用教程
Oct 08 Python
对python中的argv和argc使用详解
Dec 15 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
Django 外键的使用方法详解
Jul 19 Python
浅谈Python 递归算法指归
Aug 22 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
python3 re返回形式总结
Nov 20 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 18 Python
python每隔N秒运行指定函数的方法
Mar 16 #Python
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 #Python
Python标准库urllib2的一些使用细节总结
Mar 16 #Python
python实现查询苹果手机维修进度
Mar 16 #Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 #Python
python实现简单的计时器功能函数
Mar 14 #Python
python将图片文件转换成base64编码的方法
Mar 14 #Python
You might like
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
javascript 禁止复制网页
2009/06/11 Javascript
Prototype 工具函数 学习
2009/07/23 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
新闻学专业应届生求职信
2013/11/08 职场文书
优秀应届毕业生自荐信
2013/11/16 职场文书
国庆节活动总结
2014/08/26 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
雷锋的观后感
2015/06/10 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
详解Laravel框架的依赖注入功能
2021/05/27 PHP