Go Ticker正确的使用姿势

本文介绍了Go语言中的Ticker,它用于周期性触发事件。Ticker与Timer的主要区别在于其周期性发送事件的特性。文章通过实例展示了Ticker在简单定时任务和定时聚合任务中的应用,讲解了创建和停止Ticker的方法,强调了使用完Ticker后必须释放以避免资源泄露的问题,并给出了一个常见的错误使用示例。最后,总结了Ticker的关键点并提醒读者注意资源管理。
摘要由CSDN通过智能技术生成

简介

Ticker是周期性定时器,即周期性的触发一个事件,通过Ticker本身提供的管道将事件传递出去。

Ticker的数据结构与Timer完全一致:

type Ticker struct {
	C <-chan Time
	r runtimeTimer
}

Ticker对外仅暴露一个channel,指定的时间到来时就往该channel中写入系统时间,也即一个事件。

在创建Ticker时会指定一个时间,作为事件触发的周期。这也是Ticker与Timer的最主要的区别。

另外,ticker的英文原意是钟表的"滴哒"声,钟表周期性的产生"滴哒"声,也即周期性的产生事件。

使用场景

简单定时任务

有时,我们希望定时执行一个任务,这时就可以使用ticker来完成。

下面代码演示,每隔1s记录一次日志:

// TickerDemo 用于演示tic
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值