Go定时器的三种实现方式-速递
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。
Sleep使用休眠,让当前Goroutine休眠一定的时间来实现定时的效果,缺点是程序执行速度不均匀,导致定时周期不均匀。
for{fmt.Println(time.Now())time.Sleep(time.Second*1)}
(资料图片仅供参考)
TimerGo语言的内置包,指定一个时间开始计时,时间到之后会向外发送通知,发送通知的方式就是使用<-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。标签:
-
2022-12-22 17:24:28
Go定时器的三种实现方式-速递<
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。Sleep使用休眠,让当前Goroutine休眠一定的时间来实现定时的效果,
-
2022-12-22 11:17:17
全球速讯:《警声百二秒》・第5集“酒后驾驶”<
就到圣诞节,不少人都会驾驶外出庆祝、欢度佳节,但如果有饮酒就记得千万不要驾驶,今集《警声百二秒》会提提大家,警方除了可以要求驾驶车辆
-
2022-12-22 01:49:31
当前短讯!吉星高照贷款逾期1天多久上征信系统<
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
-
2022-12-21 16:14:44
嗨袋贷款逾期6个月还不起影响征信吗 热文<
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
-
2022-12-21 10:06:16
当前要闻:第一星运 2023年十二星座1月运势<
在2023年1月,由于受到水星逆行的影响,十二星座的运势也会发生相应的变化,对于部分人而言在这期间就会感到非常力不从心,做什么时候都没有动
-
2022-12-22 17:24:28
Go定时器的三种实现方式-速递
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。Sleep使用休眠,让当前Goroutine休眠一定的时间来实现定时的效果,
-
2022-12-22 11:17:17
全球速讯:《警声百二秒》・第5集“酒后驾驶”
就到圣诞节,不少人都会驾驶外出庆祝、欢度佳节,但如果有饮酒就记得千万不要驾驶,今集《警声百二秒》会提提大家,警方除了可以要求驾驶车辆
-
2022-12-22 01:49:31
当前短讯!吉星高照贷款逾期1天多久上征信系统
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
-
2022-12-21 16:14:44
嗨袋贷款逾期6个月还不起影响征信吗 热文
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
-
2022-12-21 10:06:16
当前要闻:第一星运 2023年十二星座1月运势
在2023年1月,由于受到水星逆行的影响,十二星座的运势也会发生相应的变化,对于部分人而言在这期间就会感到非常力不从心,做什么时候都没有动
-
2022-12-20 22:29:29
俄罗斯总统普京将于12月21日主持召开国防会议 世界新要闻
当地时间12月20日,俄新社报道称,俄罗斯总统普京将于21日主持召开国防会议,总结2022年军队行动和武装力量建设并确定2023年工作任务
-
2022-12-20 14:40:47
焦点观察:邻里药品共享同心抗疫暖人心
□杨朝清“谁家有复方鲜竹沥啊?”在北京市丰台区和义街道居民微信群里,一条求助信息发出后,很快有了回应:“我有!”“需要您来门口拿”...
-
2022-12-20 08:45:35
玉马遮阳:12月19日获融资买入398.69万元 当前资讯
同花顺数据中心显示,玉马遮阳12月19日获融资买入398 69万元,占当日买入金额的13 37%,当前融资余额8565 23万元,占流通市值的8 32%,超过历
-
2022-12-19 20:07:51
每日热议!金圆股份拟2亿元购买阿里锂源15%股权 后续还将收购后者剩余股份
在宣布终止发行股份购买阿里锂源49%股份的计划仅数日后,金圆股份(000546)就重启了该收购计划,而本次是自有资金先行收购前者15%股权。 12
-
2022-12-19 14:55:21
海欣B股(900917)12月19日主力资金净卖出10.73万元-环球头条
截至2022年12月19日收盘,海欣B股(900917)报收于0 34元,下跌4 27%,换手率0 4%,成交量1 87万手,成交额63 48万元。12月19日
-
2022-12-19 08:58:16
焦点!2022年“兵地融合促复产”冬季招聘会在新疆奎屯举办
新疆生产建设兵团第七师、新疆乌苏市、克拉玛依市独山子区联办的“兵地融合促复产”冬季招聘会,17日在奎屯市体育中心举行。据统计,本次招...
-
2022-12-18 23:19:27
息县路口乡:齐心协力治环境 凝心聚力助振兴|环球快看点
自人居环境整治工作开展以来,息县路口乡党委、政府以治理“六乱”、开展“六清”、实现“四起来”为抓手,聚重点、抓难点、做实点、造亮点...
-
2022-12-18 08:32:18
百问百答|有基础病的孕产妇,感染后要注意什么? 全球今头条
人民网问:有基础病的孕产妇,感染后要注意什么?答:本身有高血压、糖尿病等基础病的孕产妇要格外注意,在选择治疗新冠药物时,一定要先咨询
-
2022-12-17 12:25:48
广州南沙榄核水厂扩建工程一阶段试运行 供水量日达10万吨|世界报道
试运行仪式现场作者通讯员供图中新网广东新闻5月29日电(王坚张名实)位于广州南沙的榄核水厂项目第一阶段于29日顺利实现通水试运行,标志着榄核
-
2022-12-16 20:07:56
圣泉集团拟投资24.8亿建设年产10万吨生物基硬碳负极材料项目_天天视讯
挖贝网12月16日,圣泉集团(605589)近日发布公告,为深入贯彻落实“碳达峰、碳中和”战略部署,开发生物质能可再生能源,提升传统产业,消...
-
2022-12-16 15:03:34
苏州17岁子女抚养费给付的方式有哪些|环球百事通
1 有条件的,可以一次性给付;2 暂时不具备条件的,可以按月或定期给付,也可按季度或年度给付。如果协商一致,一方可以承担全部抚养费的,如果
-
2022-12-16 08:29:53
宝丰能源:12月15日融券卖出金额8.91万元,占当日流出金额的0.06% 天天速讯
同花顺数据中心显示,宝丰能源12月15日获融资买入1948 01万元,占当日买入金额的22 31%,当前融资余额8 62亿元,占流通市值的2 89%,低于历史4
-
2022-12-15 19:23:52
商丘市前进小学开展“感恩父母 热爱生命”主题班队会活动
大河网讯为进一步营造有利于学生身心健康发展的校园氛围,商丘市前进小学在全校范围内开展了“感恩父母热爱生命”主题班队会活动。各班的主...
-
2022-12-15 14:31:25
平顶山卫东区:分秒必争推进项目建设_今日热议
11月2日,在位于卫东区东高皇街道的国大医药冷链物流仓储中心项目建设现场,大型混凝土泵车正在浇筑,工地现场一派繁忙景象。“东高皇街道...
-
2022-12-15 08:13:23
【机构调研记录】富安达基金调研益生股份
根据市场公开信息及12月14日披露的机构调研信息,富安达基金近期对1家上市公司进行了调研,相关名单如下。祖代白羽肉鸡行业龙头,外销白羽肉鸡
-
2022-12-14 18:01:06
当前快报:房屋质量起诉状问题
门、窗密闭性差、变形。有的门窗自安装上开始,有的在使用一段时间后即出现密闭不好、部分材质或整体变形的问题,严重者起不到隔断视线、挡风
-
2022-12-14 13:31:34
世界微资讯!火了!国民党批吴怡农兵役政见草率像脓包
针对民进党台北市“立委”补选候选人吴怡农的松机迁移和兵役政见等争议,中国国民党今天召开记者会批评,外界骂说是草包,其实就是脓包现象...
-
2022-12-14 04:33:56
无线耳机板块12月13日跌1.8%,东尼电子领跌,主力资金净流出15.49亿元_每日快看
12月13日无线耳机板块较上一交易日下跌1 8%,东尼电子领跌。当日上证指数报收于3176 33,下跌0 09%。深证成指报收于11323 7,下跌0 66%。无线
-
2022-12-13 15:32:16
博雅生物涨5.75%,国金证券一个月前给出“买入”评级
今日博雅生物(300294)涨5 75%,收盘报36 99元。
-
2022-12-13 08:59:42
焦点速读:天沃科技:12月12日获融资买入5072.81万元,占当日流入资金比例13.49%
同花顺数据中心显示,天沃科技12月12日获融资买入5072 81万元,占当日买入金额的13 49%,当前融资余额1 01亿元,占流通市值的1 91%,超过历史9
-
2022-12-12 18:34:59
华海药业(600521.SH):目前长兴制药正在辅导过程中
格隆汇12月12日丨华海药业(600521)(600521 SH)披露控股子公司申请公开发行股票并在北京证券交易所上市辅导备案的进展,2022年12月6日,长兴
-
2022-12-12 13:53:17
全球今日报丨日发精机:公司产品可配套国产大飞机
证券时报e公司讯,日发精机在机构调研时表示,日发航空装备公司从事航空航天特种智能加工设备、飞机数字化智能装配系统及专用工装夹具的研发、
-
2022-12-10 01:55:16
快播:商务部新闻发言人就我诉美钢铝232关税措施案专家组发布报告答记者问
有记者问近日,世贸组织专家组就中国诉美钢铝232关税措施世贸争端案发布报告。答日内瓦当地时间12月9日,中国诉美钢铝232关税措施世贸争端案(
-
2022-12-07 16:56:16
每日焦点!重庆百货(600729.SH):正筹划重大资产重组事项 明起停牌
格隆汇12月7日丨重庆百货公布,公司与重庆商社(集团)有限公司(简称“重庆商社”)正在筹划与公司发行股份相关的重大事项,该事项可能构成公...
-
2022-12-06 17:10:55
12月6日大千生态发生1笔大宗交易 成交金额1725.54万元
12月6日大千生态发生大宗交易,交易数据如下:大宗交易成交价格18 01元,相对当日收盘价折价9 63%,成交95 81万股,成交金额1725 54万元,买方营