package main import ( "time" "fmt" ) func main() { timer := time.NewTimer(3 * time.Second) go func() { <-timer.C fmt.Println("子协程可以打印了,因为定时器的时间到") }() timer.Stop() for true { } }
这段代码执行后不会打印任何东西,因为主协程和子协程的执行几乎是同时的,那么它的打印自然不会被执行。
还有一个重置的例子
package main import ( "time" "fmt" ) func main() { timer := time.NewTimer(3*time.Second) timer.Reset(time.Second)//重置新设置为1s,上面的时间推迟失效 <-timer.C fmt.Println("时间到") }