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

七八个星天 · · 20688 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、定时器的创建

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:七八个星天

查看原文:golang中三种定时器的实现方式及周期定时

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

20688 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传