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 相关文章推荐
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
Python中Class类用法实例分析
Nov 12 Python
python字典DICT类型合并详解
Aug 17 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
用Pygal绘制直方图代码示例
Dec 07 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
Sep 14 Python
python 监测内存和cpu的使用率实例
Nov 28 Python
python如何支持并发方法详解
Jul 25 Python
python类共享变量操作
Sep 03 Python
python连接mongodb数据库操作数据示例
Nov 30 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 Array交叉表实现代码
2010/08/05 PHP
PHP比你想象的好得多
2014/11/27 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
php错误日志简单配置方法
2016/07/11 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
Java如何格式化日期
2012/08/07 面试题
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
会计专业个人求职信范文
2014/01/08 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
班主任经验交流材料
2014/12/16 职场文书
商场营业员岗位职责
2015/04/14 职场文书
会议通知范文
2015/04/15 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技