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时间的精准正则匹配方法分析
Aug 17 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
python定时关机小脚本
Jun 20 Python
python中map的基本用法示例
Sep 10 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
解决python3输入的坑——input()
Dec 05 Python
详解Python中__new__方法的作用
Mar 31 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
桌面中心(四)数据显示
2006/10/09 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
PHP异常处理浅析
2015/05/12 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python如何将图片转换为字符图片
2020/08/19 Python
Python Flask框架扩展操作示例
2019/05/03 Python
美国电视购物:QVC
2017/02/06 全球购物
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
2014年文艺部工作总结
2014/11/17 职场文书
2014年内勤工作总结
2014/11/24 职场文书
户外亲子活动总结
2015/05/08 职场文书
学校运动会简讯
2015/07/20 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python