多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### 定时器创建的三种方式 ##### 方式1 ``` time.Sleep(time.Second) ``` ##### 方式2 ``` fmt.Println("当前时间:", time.Now()) myTimer := time.NewTimer(time.Second*2) nowTime := <- myTimer.C fmt.Println("现在时间:", nowTime) ``` ##### 方式3 ``` nowTime2 := <- time.After(time.Second*3) ``` #### 重置和停止 ``` //创建定时器 myTimer := time.NewTimer(time.Second*20) //重置定时时长为1 myTimer.Reset(1*time.Second) //定时器停止 myTimer.Stop() ``` ####周期定时器 ``` func main() { quit := make(chan bool) // 创建一个判断是否 终止的channel fmt.Println("now: ", time.Now()) myTicker := time.NewTicker(time.Second) // 定义一个周期定时器 i := 0 go func() { for { nowTime := <-myTicker.C i++ fmt.Println("nowTime:", nowTime) if i == 3 { quit <- true // 解除 主go程阻塞。 break // return // runtime.Goexit } } }() <-quit // 子go程 循环获取 <-myTicker.C 期间,一直阻塞 } ```