python做中学(九)定时器函数的用法

系统 1436 0

    程序中,经常用到这种,就是需要固定时间执行的,或者需要每隔一段时间执行的。这里经常用的就是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的基本用法是比较简单的,这个是不是对你有用呢?

 

参考文档:

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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论