前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python通过线程实现定时器timer

python通过线程实现定时器timer

作者头像
py3study
发布2020-01-13 12:46:28
6500
发布2020-01-13 12:46:28
举报
文章被收录于专栏:python3

下面介绍以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()

#该代码片段来自于: http://www.sharejs.com/codes/python/8815

运行结果如下

>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()

#该代码片段来自于: http://www.sharejs.com/codes/python/8815

以上代码在Python 2.5.4中运行通过

以上代码在Python 2.5.4中运行通过

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档