Fork me on GitHub

    程序中,经常用到这种,就是需要固定时间执行的,或者需要每隔一段时间执行的。这里经常用的就是Timer定时器。Thread 类有一个 Timer子类,该子类可用于控制指定函数在特定时间内执行一次。

   可以用几个例子来说明Timer的用法,

   一 最简单的用法,N s后(2s)后执行:

 1 #python3 example
 2 from threading import Timer
 3 import time
 4 
 5 
 6 def hello_test():
 7     print("hello world")
 8 
 9 t = Timer(2.0,hello_test)
10 t.start()

    运行结果:

➜  timer git:(master) ✗ py timer_test1.py
hello world

    二  每隔一秒执行一次,执行十次:

 1 #python3 example
 2 from threading import Timer
 3 import time
 4 
 5 count = 0
 6 def print_timer():
 7     global t, count
 8     print("count:%d new time: %s" % (count,time.ctime()))
 9     count += 1
10 
11     if count < 10:
12         t = Timer(1, print_timer)
13         t.start()
14 
15 t = Timer(1.0, print_timer)
16 t.start()

     运行结果:

 1 ➜  timer git:(master) ✗ py timer_test2.py
 2 count:0 new time: Tue Aug 20 14:20:13 2019
 3 count:1 new time: Tue Aug 20 14:20:14 2019
 4 count:2 new time: Tue Aug 20 14:20:15 2019
 5 count:3 new time: Tue Aug 20 14:20:16 2019
 6 count:4 new time: Tue Aug 20 14:20:17 2019
 7 count:5 new time: Tue Aug 20 14:20:18 2019
 8 count:6 new time: Tue Aug 20 14:20:19 2019
 9 count:7 new time: Tue Aug 20 14:20:20 2019
10 count:8 new time: Tue Aug 20 14:20:21 2019
11 count:9 new time: Tue Aug 20 14:20:22 2019

   
    三 带参数输入的timer,每隔一秒执行一次,执行十次:

    

 1 #python3 example
 2 from threading import Timer
 3 import time
 4 
 5 def print_val(cnt):
 6     print("cnt:%d new time: %s" % (cnt,time.ctime()))
 7     cnt += 1
 8 
 9     if cnt < 10:
10         t = Timer(1, print_val,(cnt,))
11         t.start()
12     else:
13         return
14 
15 t = Timer(2.0, print_val,(1,))
16 t.start()

       运行结果:

    

 1 ➜  timer git:(master) ✗ py timer_test.py
 2 cnt:1 new time: Tue Aug 20 14:23:31 2019
 3 cnt:2 new time: Tue Aug 20 14:23:32 2019
 4 cnt:3 new time: Tue Aug 20 14:23:33 2019
 5 cnt:4 new time: Tue Aug 20 14:23:34 2019
 6 cnt:5 new time: Tue Aug 20 14:23:35 2019
 7 cnt:6 new time: Tue Aug 20 14:23:36 2019
 8 cnt:7 new time: Tue Aug 20 14:23:37 2019
 9 cnt:8 new time: Tue Aug 20 14:23:38 2019
10 cnt:9 new time: Tue Aug 20 14:23:39 2019

   从上面的例子可以看出,timer的基本用法是比较简单的,这个是不是对你有用呢?

 

参考文档:

http://c.biancheng.net/view/2629.html

  

posted on 2019-08-20 14:25  虚生  阅读(723)  评论(0编辑  收藏  举报