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 相关文章推荐
python实现的防DDoS脚本
Feb 08 Python
零基础写python爬虫之抓取百度贴吧代码分享
Nov 06 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
pandas数值计算与排序方法
Apr 12 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Python分割训练集和测试集的方法示例
Sep 19 Python
python匿名函数的使用方法解析
Oct 10 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
总结Pyinstaller打包的高级用法
Jun 28 Python
方法汇总:Python 安装第三方库常用
Apr 26 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
PHP 日常开发小技巧
2009/09/23 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
PHP 函数学习简单小结
2010/07/08 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
Python分治法定义与应用实例详解
2017/07/28 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python读取word文本操作详解
2018/01/22 Python
Python实现的rsa加密算法详解
2018/01/24 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
Oracle性能调优原则
2012/05/03 面试题
优秀求职信范文分享
2014/01/26 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
地道战观后感300字
2015/06/04 职场文书
边城读书笔记
2015/06/29 职场文书
矛盾论读书笔记
2015/06/29 职场文书