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中字符串类型json操作的注意事项
May 02 Python
python logging日志模块的详解
Oct 29 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
使用Python控制摄像头拍照并发邮件
Apr 23 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
python获取点击的坐标画图形的方法
Jul 09 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
python实现批量命名照片
Jun 18 Python
python pygame入门教程
Jun 01 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
jquery默认校验规则整理
2014/03/24 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
vue中实现弹出层动画效果的示例代码
2020/09/25 Javascript
Python实现的简单模板引擎功能示例
2017/09/02 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
Python中Yield的基本用法
2020/10/18 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
宝信软件JAVA工程师面试经历
2012/08/19 面试题
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
岗位说明书范文
2014/05/07 职场文书
技能比武方案
2014/05/21 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS