Golang中的定时任务

原文链接:https://www.ahaoaha.top/2019/05/28/Golang中的定时任务/

Timer

设置定时器,经过duration时间,Timer会被触发,Timer被触发之后,调用Reset函数,重新设置定时器,再经过duration的时间,Timer会被再次触发。

使用方式
  • 通过AfterFunc返回Timer对象,AfterFunc被调用之后,再计时结束之后,对应的函数只会被调用一次,如果想让计时器重新生效,则需要通过对象调用Reset
  • 通过NewTimer可以创建出Timer对象。
Ticker

设置周期定时器,每间隔duration时间,会将当前的时间发送到chan中,读端可以从chan中读取到到当前的时间。

使用方式
  • 通过NewTicker可以创建Ticker对象,通过对象调用Stop方法可以停止当前Ticker对象运行,但是并不会关闭chan。

Timer和Ticker的区别

  1. Ticker完成定义,从当前时刻开始计时,每个固定时间都会被触发;Timer定时器只会被触发一次
  2. Ticker在不使用时,应该手动Stop,如果不Stop可能会造成资源的泄露,Ticker在触发之后不会自动的从系统中删除;Timer触发之后Timer本身会从时间堆中删除
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值