美文网首页
Go 打点器

Go 打点器

作者: Venture_Mark | 来源:发表于2019-02-14 15:10 被阅读0次

Timer是让你等待一段时间然后去做一件事情,这件事情只会做一次。而Ticker是让你按照一定的时间间隔循环往复地做一件事情,除非你手动停止它。

package main

import "time"
import "fmt"

func main() {

    // Ticker使用和Timer相似的机制,同样是使用一个通道来发送数据。
    // 这里我们使用range函数来遍历通道数据,这些数据每隔500毫秒被
    // 发送一次,这样我们就可以接收到
    ticker := time.NewTicker(time.Millisecond * 500)
    go func() {
        for t := range ticker.C {
            fmt.Println("Tick at", t)
        }
    }()

    // Ticker和Timer一样可以被停止。一旦Ticker停止后,通道将不再
    // 接收数据,这里我们将在1500毫秒之后停止
    time.Sleep(time.Millisecond * 1500)
    ticker.Stop()
    fmt.Println("Ticker stopped")
}

输出结果

Tick at 2014-02-18 05:42:50.363640783 +0800 CST
Tick at 2014-02-18 05:42:50.863793985 +0800 CST
Tick at 2014-02-18 05:42:51.363532887 +0800 CST
Ticker stopped

在这个例子中,我们让Ticker一个独立协程上每隔500毫秒执行一次,然后在main函数所在协程上等待1500毫秒,然后停止Ticker。所以只输出了3次Ticker at信息。

相关文章

  • Go 打点器

    Timer是让你等待一段时间然后去做一件事情,这件事情只会做一次。而Ticker是让你按照一定的时间间隔循环往复地...

  • 2 Go安装和常用工具

    一、Go安装 Go定位为系统级别的编程语言,类似C的gcc编译器,Go提供编译器的安装,Go编码完成后通过编译器生...

  • 如何用 GVM 管理 Go 项目

    使用 Go 版本管理器管理多个版本的 Go 语言环境及其模块。 Go 语言版本管理器(GVM)是管理 Go 语言环...

  • Golang后端面试汇总-001

    基础面试 go的调度 为什么在内核的线程调度器之外Go还需要一个自己的调度器? go struct能不能比较 go...

  • go http学习笔记

    go http学习笔记 @[goweb, go, http] 1.go http基础 go http服务器简例 h...

  • 16 Go 鉴权(二):实现Session管理器及Session

    一、Go实现Session管理器 Go官方没有提供Session管理器,我们需自己实现Session管理器,Ses...

  • Golang

    默认安装目录: /usr/local/go/编译器启动文件: /usr/local/go/bin/go 配置环境 ...

  • Go 调试

    Go的pprof使用 web服务器 import _"net/http/pprof" go func() { ...

  • Go 代码记录(一)

    1、hello world! 2、HTTP文件服务器 3、并发编程 4、计算器 add.go sqrt.go ma...

  • GO学习笔记Day1

    go version : go1.7 darwin/amd64 编辑器:LiteIDE (Mac OS X ) 我...

网友评论

      本文标题:Go 打点器

      本文链接:https://www.haomeiwen.com/subject/dzueeqtx.html