golang学习笔记——定时器
Timer定时器
-
启动
package main
import (
"fmt"
"time"
)
func main() {
<-time.After(2 * time.Second)
fmt.Println("延时两秒")
}
func main02() {
time.Sleep(2 * time.Second)
fmt.Println("延时两秒")
}
func main01() {
//timer 只能执行一次
timer := time.NewTimer(2 * time.Second)
<-timer.C
fmt.Println("延时两秒")
}
-
停止
package main
import (
"fmt"
"time"
)
func main() {
timer := time.NewTimer(3 * time.Second)
go func() {
<-timer.C
fmt.Println("三秒后执行")
}()
//停止定时器
timer.Stop()
for {
}
}
-
重置
package main
import (
"fmt"
"time"
)
func main() {
timer := time.NewTimer(3 * time.Second)
//重置为1秒钟
timer.Reset(time.Second)
go func() {
<-timer.C
fmt.Println("定时执行")
}()
for {
}
}
Ticker定时器(循环执行)
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(time.Second)
i := 0
for {
i++
<-ticker.C
fmt.Println(i)
if i == 5 {
ticker.Stop()
break
}
}
}