Go语言定时器

编程入门 行业动态 更新时间:2024-10-21 15:49:28

Go语言<a href=https://www.elefans.com/category/jswz/34/1768257.html style=定时器"/>

Go语言定时器

包括一次性定时器(Timer)和周期性定时器(Ticker),一次性定时器:newTimer()创建一个能够往当前通道在持续duration时间之后发送当前时间的Timer:

package mainimport ("fmt""time"
)func main() {//1. timer基本使用timer1 := time.NewTimer(4 * time.Second)t1 := time.Now()fmt.Printf("t1:%v\n", t1)t2 := <-timer1.Cfmt.Printf("t2:%v\n", t2)fmt.Println("2s到了")//2. timer只能响应1次, 到截止时间会将时间发给通道//timer2 := time.NewTimer(time.Second)//for {//	<-timer2.C//	fmt.Println("时间到", t2)//}// 3.timer实现延时的功能time.Sleep(time.Second)fmt.Println(time.Now())timer3 := time.NewTimer(2 * time.Second)<-timer3.Cfmt.Println("2秒到了")fmt.Println(time.Now())<-time.After(2 * time.Second)fmt.Println("2秒到了")// 4.停止定时器timer4 := time.NewTimer(4 * time.Second)b := timer4.Stop()if b {fmt.Println("timer4关闭")}// 5.重置定时器timer5 := time.NewTimer(5 * time.Second)timer5.Reset(3 * time.Second)fmt.Println(time.Now())fmt.Println(<-timer5.C)time.Sleep(time.Second * 30)
}

Tiker是一个定时触发的计时器,它会以一个间隔(interval)往通道发送当前时间,而通道的接收者可以以固定的时间间隔从通道中读取时间:

package mainimport ("fmt""time"
)func main() {// 1.获取ticker对象ticker := time.NewTicker(2 * time.Second)i := 0// 子协程go func() {for {i++fmt.Println(<-ticker.C)if i == 4 {//停止tickerticker.Stop()}}}()time.Sleep(time.Second * 20)
}

更多推荐

Go语言定时器

本文发布于:2024-03-09 09:16:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724579.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:定时器   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!