package main
import (
"fmt"
"time"
)
func main() {
timer := time.NewTimer(time.Second*3) // 3秒定时器
fmt.Printf("timertype: ", timer)
fmt.Println(time.Now()) // 当前时间
// 停止定时器
//timer.Stop()
c := <- timer.C
fmt.Println(<-ch) // 从通道获取时间
}
重置定时器:
package main
import (
"fmt"
"time"
)
func main() {
timer := time.NewTimer(time.Second*3) // 3秒定时器
fmt.Printf("timertype: ", timer)
fmt.Println(time.Now()) // 当前时间
for i:=0;i<3;i++ {
c := <- timer.C
fmt.Println(<-ch) // 从通道获取时间
timer.Reset(time.Second*3) // 重置定时器
}
}
延时回调函数(AfterFunc):
package main
import (
"fmt"
"time"
)
func mian() {
exit := make(chan bool)
fmt.Println("start...")
time.AfterFunc(time.Second*3, func() {
fmt.Print("延时回调函数执行")
exit <- true
})
<-exit // 等待回调函数结束
}
定时任务:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(time.Second) // 打点器,每秒执行一次
stoper := time.NewTimer(time.Second * 5) // 定时器,5秒后退出
var i int
for {
select {
case <- stoper.C:
fmt.Println("stop")
goto Stop
case <-ticker.C:
i++
fmt.Println("tick:", i)
}
}
Stop:
fmt.Println("主程序结束")
}
时间差(since):
package main
import (
"fmt"
)
func main() {
startTime := time.Now().Unix()
time.Sleep(time.Second*3)
//时间差
fmt.Println(time.Since(startTime))
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)