在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
秒表package main import ( "fmt" "time" ) /*每秒大喊我要去浪,共9次,然后退出计时*/ func main() { var tickerStopped = false ticker := time.NewTicker(time.Second) go func() { time.Sleep(9 * time.Second) ticker.Stop() tickerStopped = true }() for { if tickerStopped { break } //每次阻塞1秒 <-ticker.C fmt.Println("我要去浪") } fmt.Println("main over") } 定时器package main import ( "fmt" "os" "time" ) /*三秒后宣布*/ func main051() { timer := time.NewTimer(3 * time.Second) fmt.Println("计时开始", time.Now()) x := <- timer.C //时间管道 fmt.Println("引爆于", x) fmt.Println("罗志祥的时间管理") } /*简易实现方式*/ func main052() { fmt.Println("计时开始", time.Now()) x:=<-time.After(3*time.Second) fmt.Println("引爆于", x) fmt.Println("罗志祥的时间管理") } /*定时器的终止*/ func main053() { timer := time.NewTimer(5 * time.Second) fmt.Println("计时开始",time.Now()) go func() { time.Sleep(3*time.Second) //停止计时器(永远不会向timer.C中写入数据了) ok := timer.Stop() if ok{ fmt.Println("炸弹已拆除") os.Exit(0) } }() //阻塞5秒 endTime := <-timer.C fmt.Println("炸弹引爆于", endTime) } /*定时器重置*/ func main054() { timer := time.NewTimer(5 * time.Second) fmt.Println("计时开始",time.Now()) time.Sleep(time.Second) //以当前时间为基准(而不是timer被创建的时间),将定时器设置为2秒 timer.Reset(2*time.Second) //阻塞5秒 endTime := <-timer.C fmt.Println("炸弹引爆于", endTime) } /*爆炸后重置定时器*/ func main() { timer := time.NewTimer(3 * time.Second) fmt.Println("计时开始",time.Now()) //睡眠期间,timer.C已经被写入时间 time.Sleep(5*time.Second) //以当前时间为基准(而不是timer被创建的时间),将定时器设置为2秒 timer.Reset(2*time.Second) //阻塞5秒 endTime := <-timer.C fmt.Println("炸弹引爆于", endTime) }
|
请发表评论