go语言从例子开始之Example32.打点器

定时器 是当你想要在未来某一刻执行一次时使用的 - 打点器 则是当你想要在固定的时间间隔重复执行准备的。这里是一个打点器的例子,它将定时的执行,直到我们将它停止。

Example:

package main
import "fmt"
import "time"

func main() {
    //打点器和定时器的机制有点相似:
    //一个通道用来发送数据。
    //这里我们在这个通道上使用内置的 range 来迭代值每隔500ms 发送一次的值。
    ticker := time.NewTicker(time.Millisecond * 500)

    //协程循环遍历。这里如果不用协程,for会一直遍历下去。
    //当开协程后,主线程1600ms后可以stop
    go func(){
        for t := range ticker.C{
            fmt.Println("Tick at:", t)
        }
    }()

    //打点器可以和定时器一样被停止。
    //一旦一个打点停止了,将不能再从它的通道中接收到值。
    //我们将在运行后 1600ms停止这个打点器。
    time.Sleep(time.Millisecond     * 1600)
    ticker.Stop()
    fmt.Println("Ticker stop.")

}

Result:

$ go run example.go
Tick at: 2019-10-29 11:03:22.3623367 +0800 CST m=+0.509760201
Tick at: 2019-10-29 11:03:22.8620829 +0800 CST m=+1.009506401
Tick at: 2019-10-29 11:03:23.3630626 +0800 CST m=+1.510486101
Ticker stop.

原文地址:https://www.cnblogs.com/yhleng/p/11757612.html

时间: 2024-11-01 13:10:23

go语言从例子开始之Example32.打点器的相关文章

最简单的基于FFmpeg的内存读写的例子:内存转码器

上篇文章记录了一个基于FFmpeg的内存播放器,可以使用FFmpeg读取并播放内存中的数据.这篇文章记录一个基于FFmpeg的内存转码器.该转码器可以使用FFmpeg读取内存中的数据,转码为H.264之后再将数据输出到内存.关于如何从内存读取数据,以及如何将数据输出到内存,可以参考文章: ffmpeg 从内存中读取数据(或将数据输出到内存) FFmpeg读写内存的关键点有2个:1.       初始化自定义的AVIOContext,指定自定义的回调函数.2.       自己写回调函数.注意函数

gRPC的Go语言使用例子

gRPC刚被Google开源, gRPC是啥? 先照抄一段说明: gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言.gRPC提供了一种简单的方法来精确地定义服务和为iOS.Android和后台支持服务自动生成可靠性很强的客户端功能库.客户端充分利用高级流和链接功能,从而有助于节省带宽.降低的TCP链接次数.节省CPU使用.和电池寿命. 这段抄

自学SQL语言的例子(使用MySQL实现)

SQL语言作为一种数据库管理的标准语言有着极为广泛的应用场景,菜鸟入门选用的数据库软件是轻量级的免费(这个极为重要)的MySQL,下载链接如下:http://www.mysql.com/downloads/ ,笔者的程序在MySQL可视化界面WorkBench下编写脚本文件并执行,这比在命令行模式下执行更加便捷且直观.安利一本MySQL菜鸟入门的书籍刘少杰和曾少军编著的<MySQL5.5——从零开始学>这本书(资源自寻,为避免侵权这里就不给出链接了,当然也欢迎直接买本纸质书支持作者). 例子:

Direct3D C语言的例子

几乎所有的D3D例子都是用COM和C++写的.C语言可以用D3D吗,StackOverflow上给出了答案:directx-programming-in-c. 1 hr = IDirect3D9_GetDeviceCaps(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3dcaps9); 2 hr = IDirect3D9_GetAdapterDisplayMode(d3d, D3DADAPTER_DEFAULT, &d3ddm); 3 hr = I

go语言从例子开始之Example20.错误处理

Go 语言使用一个独立的·明确的返回值来传递错误信息的.这与使用异常的 Java 和 Ruby 以及在 C 语言中经常见到的超重的单返回值/错误值相比,Go 语言的处理方式能清楚的知道哪个函数返回了错误,并能像调用那些没有出错的函数一样调用. package main import "errors" import "fmt" 按照惯例,错误通常是最后一个返回值并且是 error 类型,一个内建的接口. func f1(arg int) (int, error) {

c语言一个例子对比php学习随记

今天开始学写一些简单的C例子,发现很多和PHP不一样的地方,做个笔记. #include <stdio.h> int main(void) { int a,b; printf("请输入整数a"); //这里是用双引号,不能用单引号,PHP类似的地方可以用单引号,这里需注意 scanf("%d",&a); //获取用户输入值存入a printf("请输入整数b"); scanf("%d",&b);//

go语言从例子开始之Example39.使用函数自定义排序

有时候我们想使用和集合的自然排序不同的方法对集合进行排序.例如,我们想按照字母的长度而不是首字母顺序对字符串排序.这里是一个 Go 自定义排序的例子. Example: package main import ( "fmt" "sort" ) //为了在 Go 中使用自定义函数进行排序, //我们需要一个对应的类型. //这里我们创建一个为内置 []string 类型的别名的byLength 类型, type byLength []string //我们在类型中实现

R语言小例子---简易的数据分析和画图

目前有10名儿童(男)的年龄和身高的数据(虚构数据),感兴趣的是升高的分布及体重和年龄的关系. 年龄(岁) 体重(kg) 年龄(岁) 体重(kg) 4 95 6 116 4 97 7 120 5 106 7 121 5 108 8 126 6 114 8 125 使用函数c()以向量的形式输入儿童的年龄和身高数据.然后,使用一些内置的函数获得身高的均值和标准差,以及年龄和体重的相关度. > age <- c(4,4,5,5,6,6,7,7,8,8) > height <- c(95

最简单的基于FFmpeg的移动端例子:Android 转码器

本文记录一个安卓平台下基于FFmpeg的视频转码器.该转码器实际上移植自ffmpeg工程中的ffmpeg.c源代码.有关ffmpeg.c的源代码可以参考文章<ffmpeg.c函数结构简单分析(画图)>,在这里就不重复记录了. 源代码 项目的目录结构如图所示.Java源代码位于src目录,而C代码位于jni目录. Android程序Java端代码位于src\com\leixiaohua1020\sffmpegandroidtranscoder\MainActivity.java,如下所示. /*