阅读量:2
在Go语言中,你可以使用time包中的Timer类型来创建一个定时器,并在定时器触发时执行回调函数。以下是一个简单的示例:
package main
import (
"fmt"
"time"
)
func main() {
// 创建一个定时器,设置5秒后触发
timer := time.NewTimer(5 * time.Second)
// 等待定时器触发
<-timer.C
// 定时器触发后执行的回调函数
fmt.Println("定时器触发,执行回调函数")
}
在这个示例中,我们创建了一个定时器,设置5秒后触发。然后我们使用<-timer.C来阻塞主线程,直到定时器触发。当定时器触发时,会执行回调函数(在这个例子中是打印一条消息)。
如果你需要在定时器触发之前取消定时器,可以使用timer.Stop()方法。例如:
package main
import (
"fmt"
"time"
)
func main() {
// 创建一个定时器,设置5秒后触发
timer := time.NewTimer(5 * time.Second)
// 在2秒后取消定时器
time.Sleep(2 * time.Second)
timer.Stop()
// 检查定时器是否已取消
if !timer.Stop() {
// 定时器已经触发,获取其完成时间
<-timer.C
}
fmt.Println("定时器已取消或已触发")
}
在这个示例中,我们在2秒后取消了定时器。如果定时器已经被触发,timer.Stop()将返回false,此时我们可以从timer.C通道中读取数据以处理定时器触发的事件。
以上就是关于“Go语言定时器如何设置回调”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm