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动态监控日志内容的示例
Feb 16 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
numpy返回array中元素的index方法
Jun 27 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
python 有效的括号的实现代码示例
Nov 11 Python
Python基础类继承重写实现原理解析
Apr 03 Python
python学生管理系统的实现
Apr 05 Python
通过实例简单了解python yield使用方法
Aug 06 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
Python列表的索引与切片
Apr 07 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
codeigniter中测试通过的分页类示例
2014/04/17 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
php 可变函数使用小结
2018/06/12 PHP
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
python web框架中实现原生分页
2019/09/08 Python
python try...finally...的实现方法
2020/11/25 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
捷克玩具商店:Bambule
2019/02/23 全球购物
新闻专业个人自我评价
2013/09/21 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
工作失职自我检讨书
2015/05/05 职场文书
2015学校年度工作总结
2015/05/11 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers