首页 > 编程语言 > 详细

GO语言定时器

时间:2020-11-16 15:58:39      阅读:30      评论:0      收藏:0      [点我收藏+]

GO语言定时器

ticker

  • 通过 time.NewTicker() 创建,这种类型,ticker会不断的按照设定的间隔时间触发,除非主动终止运行。
type Ticker struct {
    C <-chan Time // The channel on which the ticks are delivered.
    r runtimeTimer
}
package main

import (
	"time"
	"fmt"
)

func main(){
	var x int
	ticker := time.NewTicker(time.Second * 1) // 运行时长
    
    for {
		
            for x<10{
				select {
				case <-ticker.C:
					x++
					fmt.Printf("%d\n", x)
				}
			}
        
        //ticker.Stop()
        
    }
  // 通过通道阻塞,让任务可以执行完指定的次数。
}

timer

  • 通过 time.NewTimer() 创建,这种类型,timer只会执行一次,当然,可以在执行完以后通过调用 timer.Reset() 让定时器再次工作,并可以更改时间间隔。
type Timer struct {
    C <-chan Time
    r runtimeTimer
}
package main

import(
    
    "time"
)

func main() {

    t1 := time.NewTimer(time.Second * 5)
    t2 := time.NewTimer(time.Second * 10)

    for {
           select{
				case <-t1.C:
				      println("5s timer")
				      //t1.Reset(time.Second * 5)
				      break

			        case <-t2.C:
				      println("10s timer")
				      //重新定时
				      t2.Reset(time.Second )
		   }
    }
}

GO语言定时器

原文:https://www.cnblogs.com/CYD-self/p/13984964.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!