很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。
【资料图】
使用休眠,让当前Goroutine休眠一定的时间来实现定时的效果,缺点是程序执行速度不均匀,导致定时周期不均匀。
for{fmt.Println(time.Now())time.Sleep(time.Second*1)}Timer
Go语言的内置包,指定一个时间开始计时,时间到之后会向外发送通知,发送通知的方式就是使用<-chan Time返回内容。
第一种方式,直接在需要等待处使用,效果和Sleep一样,一使用就卡在那了内部就是使用了Timer。
fmt.Println(time.Now())<-time.After(1*time.Second)fmt.Println(time.Now())
也可以把他拆分开,在任意地方进行等待
timer:=time.NewTimer(1*time.Second)<-timer.Cfmt.Println(time.Now())
但是以上只是做到延迟一次性执行,我们来改造一下,把他变成定时器。
done:=make(chanstruct{})timer:=time.NewTimer(1*time.Second)gofunc(){for{select{case<-timer.C:fmt.Println(time.Now())timer.Reset(1*time.Second)case<-done:return}}}()<-time.After(5*time.Second+time.Millisecond*100)done<-struct{}{}定义子Goroutine的目的是为了防止形成死锁,让定时器最终能退出,在实际项目中可能需要一个永久运行的定时器,一般为了不影响项目主逻辑也会这样定义。如果你的项目就是定时任务,我建议也这么写,这样可以注册很多个定时器互不影响。done是为了判断执行是否结束,防止主Goroutine提前退出。这个示例只有两个case,实战中如果有加其他case需要给每个case内都做一次Reset,保证重置定时器。Ticker
相比上述使用延迟执行功能实现的定时器,Ticker本身就是一个定时器(内部封装了Timer),我们使用起来就非常简单。
ticker:=time.NewTicker(1*time.Second)gofunc(){for{<-ticker.Cfmt.Println(time.Now())}}()<-time.After(5*time.Second+time.Millisecond*100)ticker.Stop()
在select 一节中讲述的官方超时控制方案非常的实用,也是使用的此函数。还使用到timer.Stop和timer.Reset这两个内置函数这里就不展开讲解了,建议进行复习。
小结定时器一般用来周期性执行任务,比如定时同步数据、计算报表、发送通知。
time.Sleep使用休眠,让当前goroutine休眠一定的时间来实现定时的效果,缺点是内部逻辑执行的速度会影响到定时器的时间差,无法做到精确间隔。Timer类似于Sleep的延迟处理,通过channel来获得通知,也可以改造成定时器。因为是延迟处理,所以要记得重置时间来实现定时执行的效果。Ticker现成的定时器,内部也是封装了 Timer。推荐内容
- Go定时器的三种实现方式_焦点关注
- 独家资金:主力进散户逃前10股
- 观焦点:柬埔寨一所赌场发生火灾 已致10
- 环球动态:我阳了...
- 奥海科技:拟回购不低于5000万元且不超过
- 九华旅游12月28日快速反弹
- 天天观速讯丨广西700MW海上风电项目获核准
- 昆药集团(600422)11月22日主力资金净卖
- 世界今头条!永安林业: 薪酬与考核委员
- 天天快播:长沙市雨花区高桥街道社区卫生
- 拍拍贷逾期41年拖欠多久会上征信系统
- 环球热资讯!黄晓明与家人一起包水饺,画
- 你我贷借款逾期4000不还征信有什么影响
- 永顺泰:公司未涉及供销社业务
- 环球新资讯:上海迪士尼门票第四次涨价
- 焦点热门:威胜信息(688100.SH)聘任李先怀
- 满易贷逾期十天延迟还款会上征信吗|动态
- 【环球报资讯】吕良伟在豪宅庆67岁生日,
- 全球连线|俄罗斯留学生爱林:我将把我的
- 【全球新视野】微信网名男人成熟稳重简短
- 如果欠国美易卡网贷的钱怎么还呢_环球看
- 男士的第一套定制西装:优雅与体面-环球
- 天津警方:一小客车与水泥罐车发生碰撞致
- 悦高软件拟以0元收购控股子公司自然人股
- 华菱钢铁董秘回复:硅钢一期项目是湖南省
- 上海钢联(300226)12月20日主力资金净卖
- 焦点!南财快评:LPR报价继续不变 政策
- 中信出版董秘回复:公司聚焦在出版主业并
- 医药企业释放最大产能 北京市医药企业日
- 当前视点!3小时!开发ChatGPT微信小程序
- 德尔未来董秘回复:目前公司石墨烯空气净
- 最新资讯:协程这么好,它能完全代替线程
- 世界微头条丨Polkadot 能否达到与 L2
- 热议:CCIX 互连标准演示
- 汝南县气象局发布大风黄色预警「III级/较
- 平潭综合实验区应对新冠肺炎疫情工作指挥
- 当前要闻:陆林:新冠对精神健康影响或超1
- 环球播报:怎么穿显腿长,明星告诉你答案
- 硬盘价格持续跳水 预测称到2025年硬盘将
- 个人养老投资基金到底是个啥?能投私募基
- 【全球报资讯】《我的前半生》:闺蜜关系
- 青海茫崖用上光伏新能源
- 报告:家族信托客群年轻化、多元化,家族
- 美股异动 | 索尼(SONY.US)涨超3% 微软
- 闪电贷贷款逾期延迟还款征信有什么影响_
- 【独家焦点】江西铜业(600362)12月12日
- 全球观察:等待钢铁冬储“窗口期”:贸易
- 资讯推荐:CPA只有一线城市需要吗?小城市
- 婴童营养品如何选?ChildLife联合亲宝宝
- 新县:金秋好“丰”景 晚稻正归仓|全球
- 天天观热点:12月7日创耀科技涨6.22%,国
- 每日热文:步长制药董秘回复:2022年3月
- 屏边苗族自治县持续优化营商环境 不断激
- 屏边苗族自治县持续优化营商环境 不断激
- 今年“清朗”系列专项行动处置账号13.4亿
- 见微知著 全球首台12色眼底相机亮相
- 江苏创新运用《多重身份认定表》 确保代
- 新发现!新疆发现新矿物镁高铁角闪石 高
- 北斗铁路行业综合应用示范工程项目成功通
- 江苏常州构建全方位立体化公共安全网 筑
- 如果欠国美易卡网贷的钱怎么还呢_环球看
- 男士的第一套定制西装:优雅与体面-环球
- 天津警方:一小客车与水泥罐车发生碰撞致
- 悦高软件拟以0元收购控股子公司自然人股
- 华菱钢铁董秘回复:硅钢一期项目是湖南省
- 上海钢联(300226)12月20日主力资金净卖
- 焦点!南财快评:LPR报价继续不变 政策
- 中信出版董秘回复:公司聚焦在出版主业并
- 医药企业释放最大产能 北京市医药企业日
- 当前视点!3小时!开发ChatGPT微信小程序
- 德尔未来董秘回复:目前公司石墨烯空气净
- 最新资讯:协程这么好,它能完全代替线程
- 世界微头条丨Polkadot 能否达到与 L2
- 热议:CCIX 互连标准演示
- 汝南县气象局发布大风黄色预警「III级/较
- 平潭综合实验区应对新冠肺炎疫情工作指挥
- 当前要闻:陆林:新冠对精神健康影响或超1
- 环球播报:怎么穿显腿长,明星告诉你答案
- 硬盘价格持续跳水 预测称到2025年硬盘将
- 个人养老投资基金到底是个啥?能投私募基
- 【全球报资讯】《我的前半生》:闺蜜关系
- 青海茫崖用上光伏新能源
- 报告:家族信托客群年轻化、多元化,家族
- 美股异动 | 索尼(SONY.US)涨超3% 微软
- 闪电贷贷款逾期延迟还款征信有什么影响_
- 【独家焦点】江西铜业(600362)12月12日
- 全球观察:等待钢铁冬储“窗口期”:贸易
- 资讯推荐:CPA只有一线城市需要吗?小城市
- 婴童营养品如何选?ChildLife联合亲宝宝
- 新县:金秋好“丰”景 晚稻正归仓|全球
- 天天观热点:12月7日创耀科技涨6.22%,国
- 每日热文:步长制药董秘回复:2022年3月
- 屏边苗族自治县持续优化营商环境 不断激
- 屏边苗族自治县持续优化营商环境 不断激
- 今年“清朗”系列专项行动处置账号13.4亿
- 见微知著 全球首台12色眼底相机亮相
- 江苏创新运用《多重身份认定表》 确保代
- 新发现!新疆发现新矿物镁高铁角闪石 高
- 北斗铁路行业综合应用示范工程项目成功通
- 江苏常州构建全方位立体化公共安全网 筑
- 浙江省新冠病毒抗原检测试剂注册申请 获
- 总投资147.73亿元 国家电网今年首批抽水
- 针灸也能治疗新冠肺炎?张伯礼、刘保延教
- 美国纯电汽车市场扩大 特斯拉占据近四分
- 续航更长 Rivian计划在全系电动汽车中全
- 刚刚涨价的特斯拉 又在交付策略上搞事情
- 美国明确无人车乘员保护标准 自动驾驶不
- 总投资超2万亿韩元 韩国电动汽车电池制
- 汽油价格暴涨后 特斯拉在美国订单激增
- 理想L9内饰图曝光 新车续航可达1200km
- 美国华盛顿州通过法案 禁止在2030年销售
- 由于俄乌冲突导致美国油价飙升 特斯拉订
- 从寡头公司采购数百万欧元铝 特斯拉与俄
- 大众汽车发出警告 2022年增长前景或受影响
- 大众集团发布2021年财务数据 销量同比下
- 现代汽车在印度尼西亚工厂生产电动汽车
- 阿斯顿马丁将与Britishvolt合作 开发电
- 俄乌冲突加剧供应链中断 宝马下调2022年
- 特斯拉Semi重型卡车项目负责人 杰罗姆吉
- 造型惊艳奥迪首款纯电概念车亮相 将在20