func timer () {
//timer.C只执行一次
timer := time.NewTimer(2*time.Second)
for {
fmt.Println("ddd") //第二次执行报死锁
<-timer.C //自己过一秒后自动执行一次 且只执行一次 2.在执行到timer.C的时候回停顿两秒,之后再执行下面的代码
fmt.Println("fdf")
}
}
//timer报死锁
func ticket () {
//ticker 执行无数此
ticketer := time.NewTicker(3*time.Second)
for {
<-ticketer.C
println("3rerdfsd")
}
}
// 3rerdfsd
// 3rerdfsd
// 3rerdfsd
// 3rerdfsd
func timer1() {
//定时器 延时
timer := time.NewTimer(2*time.Second)
fmt.Println("当前时间:",time.Now())
//当前时间: 2019-01-10 18:31:07.7493589 +0800 CST m=+0.212431901
t:=<-timer.C //时间到了就向time通道中写入当前时间 只写一次,time channel没有数据前后阻塞 有数据没有阻塞
fmt.Println("时间到:",t)
//时间到: 2019-01-10 18:31:09.7500458 +0800 CST m=+2.213118901
}