032_go语言中的定时器
代码演示
package main
import "fmt"
import "time"
func main() {
timer1 := time.NewTimer(time.Second * 2)
<-timer1.C
fmt.Println("Timer 1 expired")
timer2 := time.NewTimer(time.Second)
go func() {
<-timer2.C
fmt.Println("Timer 2 expired")
}()
stop2 := timer2.Stop()
if stop2 {
fmt.Println("Timer 2 stopped")
}
}
代码运行结果
Timer 1 expired Timer 2 stopped
代码解读
- 定时器表示未来某一时刻的独立事件,我们设置一个等待的时间,然后定时器会提供一个用于通知的通道
- <-timer1.C会一直阻塞,直到通道C明确的发送了定时器的失效的值
- 如果只是单纯的等待的话,用time.Sleep就可以,定时器可以在失效之前取消掉

浙公网安备 33010602011771号