单次定时器和多次循环定时器示例

Python中通过线程实现定时器timer,其使用非常简单。看示例:
在使用Python定时器时需要注意如下4个方面:
(1)定时器构造函数主要有2个参数,第一个参数为时间,第二个参数为函数名,第一个参数表示多长时间后调用后面第二个参数指明的函数。第二个参数注意是函数对象,进行参数传递,用函数名(如fun_timer)表示该对象,不能写成函数执行语句fun_timer(),不然会报错。用type查看下,可以看出两者的区别。

print(type(fun_timer()))
print(type(fun_timer))

结果为:

<class 'NoneType'>
<class 'function'>

(2)必须在定时器执行函数内部重复构造定时器,因为定时器构造后只执行1次,必须循环调用。
(3)定时器间隔单位是秒,可以是浮点数,如5.5,0.02等,在执行函数fun_timer内部和外部中给的值可以不同。如上例中第一次执行fun_timer是1秒后,后面的都是5.5秒后执行。
(4)可以使用cancel停止定时器的工作.timer.cancel()
1. 单次定时器和多次循环定时器示例

import threading
import time
#Timer(定时器)是Thread的派生类,
#用于在指定时间后调用一个方法。
'''
def func():
    print 'hello timer!'
timer = threading.Timer(2, func)
timer.start()  ####threads can only be started once
'''
----------
上面代码简单的展示了运行程序后,隔了2s调用函数func()打印 hello timer!
只打印一次。下面的程序为循环打印Hello Timer!和程序运行时间的程序。
----------

def fun_timer():
#    print('Hello Timer!')
    print 'Hello Timer! %s'%(time.clock())
    global timer
    timer = threading.Timer(2, fun_timer)
    timer.start()

timer = threading.Timer(2, fun_timer)
timer.start()
while 1:
    time.sleep(1)
    print '22 , %s'%(time.clock())

运行后有如下结果:

22 , 0.0
Hello Timer! 0.998539092087
22 , 1.00059164495
22 , 2.00159345914
Hello Timer! 2.99951530625
22 , 3.00176469484
22 , 4.00238876648
Hello Timer! 4.99995050662
22 , 5.00295651808
22 , 6.00306858929
Hello Timer! 6.99948515512
22 , 7.00358058972
22 , 8.00363463421
Hello Timer! 8.99967630195
22 , 9.00376604766
22 , 10.0038343144
Hello Timer! 11.0003163025
22 , 11.004206368
22 , 12.0043201459
Hello Timer! 13.0000273067
22 , 13.005121711
22 , 14.0053196845
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值