首页
学习
活动
专区
工具
TVP
发布

Go语言定时器

Go语言定时器

定时器可以实现在指定时间点执行特定的事件。Go语言定时器和其他语言的开发思路不一样。其他语言大多是注册回调函数定时,时间到了调用回调。

Go语言定时器的实质是单向通道,time.Timer结构体类型中有一个time.Time类型的单向 chan,通过 chan 的阻塞实现的。调用的地方读取 chan 定时,时间到向 chan 写入值阻塞解除调用函数。

定时器常用函数和方法:

NewTimer创建一个Timer,它会在最少过去时间段d后到期,向其自身的C字段发送当时的时间。

After会在另一线程经过时间段d后向返回值发送当时的时间。等价于NewTimer(d).C。

Tick是NewTicker的封装,只提供对Ticker的通道的访问。如果不需要关闭Ticker,本函数就很方便。

NewTicker返回一个新的Ticker,该Ticker包含一个通道字段,并会每隔时间段d就向该通道发送当时的时间。它会调整时间间隔或者丢弃tick信息以适应反应慢的接收者。如果d

一次性定时器

一、使用 time.NewTimer 实现一次性定时器:

二、使用 time.After 实现一次性定时器:

永久定时器

一、使用 time.Tick 实现永久定时器

二、使用 time.NewTicker 实现永久定时器

下一篇:

Go语言互斥锁------敬请期待!

第十一章 并发编程

第十二章 反射

第十三章 数据格式

第十四章 终端读取

第十五章 文件操作

第十六章 事件处理

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190114G14DSY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券