一、定时器的创建

golang中定时器有三种实现方式,分别是time.sleep、time.after、time.Timer
其中time.after和time.Timer需要对通道进行释放才能达到定时的效果

package main

import (
    "fmt"
    "time"
)

func main() {
    /*
        用sleep实现定时器
    */
    fmt.Println(time.Now())
    time.Sleep(time.Second)
    fmt.Println(time.Now())
    /*
        用timer实现定时器
    */
    timer := time.NewTimer(time.Second)
    fmt.Println(<-timer.C)
    /*
        用after实现定时器
    */
    fmt.Println(<-time.After(time.Second))

}

二、定时器的重置与停止

timer.Reset(d Duration)timer.Stop()

golang中使用Tiker可以实现周期定时的效果

package main

import (
    "fmt"
    "time"
)

func main() {
    tiker := time.NewTicker(time.Second)
    for i := 0; i < 3; i++ {
        fmt.Println(<-tiker.C)
    }
}