package main
import (
"fmt"
"time"
)
func main(){
ticker:=time.NewTicker(time.Second*3)
go func() {
for now := range ticker.C {
fmt.Printf("%v\n", now)
}
}()
ticker.Stop()
t2:=time.Tick(time.Second*2)
go func() {
for now := range t2 {
fmt.Printf("222222222 %v\n", now)
}
}()
for{
select {
case <-t2:
println(11111)
case <-time.After(time.Second*2):
fmt.Println("timed out")
}
}
timer1:=time.NewTimer(time.Second*3)
go func() {
for now := range timer1.C {
fmt.Printf("%v\n", now)
}
}()
time.Sleep(time.Second*7)
timer1.Stop()
return
//使用Parse 默认获取为UTC时区 需要获取本地时区 所以使用ParseInLocation 获取今天晚上23.59分59秒的时间戳
tnow := time.Now()
t, _ := time.ParseInLocation("2006-01-02 15:04:05", tnow.Format("2006-01-02")+" 23:59:59", time.Local)
sub := t.Sub(tnow) //减去当前时间 获取现在到今晚23:59:59的时间差来创建定时器
timer:=time.AfterFunc(time.Second * 2, func() {
fmt.Println("in AfterFunc")
})
time.Sleep(time.Second * 3)
timer.Reset(time.Second * 2)
fmt.Println("Print in main")
timer.Stop()
time.Sleep(time.Second * 20)
}
Go语言的定时器timer包
最新推荐文章于 2024-03-04 08:51:43 发布