timetime
一、time.NewTicker
time.NewTickertime.Time
time.NewTicker
package main
import (
"fmt"
"time"
)
func main() {
// 创建一个每隔1秒触发一次的定时器
ticker := time.NewTicker(1 * time.Second)
// 使用匿名的 goroutine 来处理定时触发的事件
go func() {
for {
// 通过 <-ticker.C 从通道中接收时间信号,此处会每隔1秒触发一次
// 可以在这里执行你想要的操作
fmt.Println("Tick at", <-ticker.C)
}
}()
// 主函数继续运行,这里只是演示,让主程序不会立即退出
// 在实际使用中,你可能需要让程序运行一段时间或者通过某种方式等待goroutine执行完毕
time.Sleep(5 * time.Second)
// 停止定时器
ticker.Stop()
fmt.Println("Ticker stopped")
}
上述代码创建了一个每隔1秒触发一次的定时器,并通过匿名的 goroutine 来处理定时触发的事件。程序会运行5秒后,停止定时器,并输出"Ticker stopped"。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/52662.html
注意,在实际使用中,你可能需要根据实际需求,使用不同的时间间隔,以及采取适当的方式来控制定时器的生命周期。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/52662.html
二、time.After
time.Aftertime.After
package main
import (
"fmt"
"time"
)
func task() {
fmt.Println("Task executed at", time.Now())
}
func main() {
// 创建一个定时器,2秒后触发定时任务
timer := time.After(2 * time.Second)
// 阻塞直到定时器触发
<-timer
// 执行定时任务
task()
// 主函数会继续运行,这里只是演示,让主程序不会立即退出
time.Sleep(1 * time.Second)
}
time.After<-timertask()
time.Ticktime.Aftertime.Sleep