Go语言中Time.Ticker的用法是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1860个文字,预计阅读时间需要8分钟。
使用 `Time.Ticker` 实现一个定时器,并学习其源码。面试官提问:每秒调用一次 `proc` 函数,并确保程序不退出。
gopackage main
func main() { ticker :=time.NewTicker(time.Second) defer ticker.Stop()
for range ticker.C { proc() }}
func proc() { panic(ok)}
利用 Time.Ticker 实现一个定时器,并学习其源码。 一、引子面试官问了一道题:每秒钟调用一次proc并保证程序不退出。
package main
func main() {
}
func proc() {
panic("ok")
}
这道题考察的知识点主要有:
- 定时执行任务
- 捕获
panic错误
这里主要学习、了解 Time.Ticker 的实现,其源代码基于 Go 1.17.9 版本,主要在 src/time/tick.go 文件中,包含了一个结构体和四个函数。
Ticker 是一个周期触发定时的计时器,它会按照一个时间间隔往 channel 发送系统当前时间,而 channel 的接收者可以以固定的时间间隔从 channel 中读取事件。
本文共计1860个文字,预计阅读时间需要8分钟。
使用 `Time.Ticker` 实现一个定时器,并学习其源码。面试官提问:每秒调用一次 `proc` 函数,并确保程序不退出。
gopackage main
func main() { ticker :=time.NewTicker(time.Second) defer ticker.Stop()
for range ticker.C { proc() }}
func proc() { panic(ok)}
利用 Time.Ticker 实现一个定时器,并学习其源码。 一、引子面试官问了一道题:每秒钟调用一次proc并保证程序不退出。
package main
func main() {
}
func proc() {
panic("ok")
}
这道题考察的知识点主要有:
- 定时执行任务
- 捕获
panic错误
这里主要学习、了解 Time.Ticker 的实现,其源代码基于 Go 1.17.9 版本,主要在 src/time/tick.go 文件中,包含了一个结构体和四个函数。
Ticker 是一个周期触发定时的计时器,它会按照一个时间间隔往 channel 发送系统当前时间,而 channel 的接收者可以以固定的时间间隔从 channel 中读取事件。

