Ticker 是一个定时触发的计时器,它会以一个间隔(interval)往channel发送一个事件(当前时间),而channel的接收者可以以固定的时间间隔从channel中读取事件。
使用示例: Ticker 每沿时一秒输出一个结果
package main
import "time"
func main() {
ticker := time.NewTicker(time.Second)
counter := 0
for _ = range ticker.C {
counter++
println(counter)
if counter >= 5 {
ticker.Stop()
break
}
}
}
与管道配合使用的例子
package main
import "time"
func main() {
ch := make(chan int)
ticker := time.NewTicker(time.Second)
go func() {
counter := 0
for _ = range ticker.C {
counter++
ch <- counter
}
}()
for {
time.Sleep(time.Second)
select {
case v := <-ch:
println("tick ", v)
if v >= 10 {
ticker.Stop()
}
default:
println("default")
}
}
println("main end")
}