Time包详解二-timer和ticket.html

timer 计时器

用于在指定的Duration类型时间后调用函数或计算表达式。

  • 如果只是想指定时间之后执行,使用time.Sleep()
  • 使用NewTimer(),可以返回的Timer类型在计时器到期之前,取消该计时器
  • 直到使用<-timer.C发送一个值,该计时器才会过期
timer1 := time.NewTimer(time.Second * 2)

ticker 断续器

按照指定的周期来调用函数或计算表达式。

  • 通常会使用go新开一个线程,否则会

使用时间控制停止ticker

	ticker := time.NewTicker(time.Millisecond * 500)
    go func() {
        for t := range ticker.C {
            fmt.Println("Tick at", t)
        }
    }()

	time.Sleep(time.Millisecond * 1500)   //阻塞
    ticker.Stop()     
    fmt.Println("Ticker stopped")

使用channel控制停止ticker

ticker := time.NewTicker(time.Millisecond * 500)
	c := make(chan int)
	go func() {
		i := 0
		for t := range ticker.C {
			fmt.Println("Tick at", t)
			i++
			if i == 3 {
				ticker.Stop()
				break
			}
		}
		c

不开新线程..

func main() {
	ticker := time.NewTicker(time.Millisecond * 500)

	i := 0
	for t := range ticker.C {       //无限循环,直到break
		fmt.Println("Tick at", t)
		i++
		if i == 3 {
			ticker.Stop()
			break
		}
	}

	fmt.Println("Ticker stopped")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值