作用
Timer类型代表单次时间事件。当Timer到期时,当时的时间会被发送给C信道
一个简单实现定时事件的例子
func main(){
t1 := time.NewTimer( 2 * time.Second)
t2 := time.NewTimer( 3 * time.Second)
startTime := time.Now()
isTimeOut := false
for !isTimeOut {
select{
case <-t1.C:
fmt.Println("t1 exec")
fmt.Println("执行间隔时间",time.Now().Sub(startTime).Seconds())
case <-t2.C:
fmt.Println("t2 exec")
fmt.Println("执行间隔时间",time.Now().Sub(startTime).Seconds())
case <-time.After(4 * time.Second):
fmt.Println("time out")
isTimeOut = true
}
}
}
执行结果
通过执行结果可以看到通过time.NewTimer()函数传递一个时间,时间到达时会发送一个到达时间给C信道,可以用select语法接受然后做一些定时逻辑
Reset方法可以重新设置到时时间
func main(){
t1 :