golang中三种定时器的实现方式及周期定时

一、定时器的创建

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()

三、周期定时的实现Tiker

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

package main

import (
    "fmt"
    "time"
)

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容