Ticker是一个定时触发的定时器,它会每隔一段时间向一个通道发送一个事件。
下面是一个简单的示例,演示了如何使用Ticker来定时执行任务:
package main
import (
"fmt"
"time"
)
func main() {
// 创建一个每隔1秒触发一次的Ticker
ticker := time.NewTicker(1 * time.Second)
// 创建一个通道来接收Ticker事件
tickerChan := ticker.C
// 定义一个计数器
count := 0
for {
select {
case <-tickerChan:
// 每次收到Ticker事件时执行的任务
count = count + 1
fmt.Println("Ticker event ", count)
// 如果计数器达到5,停止Ticker
if count == 5 {
ticker.Stop()
fmt.Println("Ticker stopped")
return
}
}
}
}
在上面的示例中,我们首先创建了一个每隔1秒触发一次的Ticker,并通过ticker.C
获取了一个通道来接收Ticker事件。然后使用一个无限循环来监听通道,每次收到Ticker事件时执行相应的任务。在这个示例中,我们设置一个计数器,当计数器达到5时停止Ticker。
当运行上面的代码时,你会看到每隔1秒输出一次"Ticker event",当计数器达到5时会停止输出并停止Ticker。