Go定时器的三种实现方式-环球聚看点
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。Sleep使用休眠,让当前Goroutine休眠一定的时间来实现定时的效果,
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。
Sleep使用休眠,让当前Goroutine休眠一定的时间来实现定时的效果,缺点是程序执行速度不均匀,导致定时周期不均匀。
for{fmt.Println(time.Now())time.Sleep(time.Second*1)}
(资料图片仅供参考)
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。关键词:
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。Sleep使用休眠,让当前Goroutine休眠一定的时间来实现定时的效果,
全国碳排放权交易市场是我国利用市场机制控制和减少温室气体排放,
据证监会12月23日消息,为切实维护人民群众财产安全,进一步规范证券活动网上信息内容,严厉打击股市“黑嘴”、非法荐股等行为,打造清朗网络
金融界APP2022年12月23日讯,盘龙药业(002864)报收48 6元,涨幅10 00%,成交量2061 01万股,成交额99241 44万元,换手率38 04%,振幅4 26%,量
今天,Redmi官方发布公告,K60宇宙,永久取消「电竞版」,2023年,你已不再需要一部电竞手机。K60Pro,兼具旗舰配置+电竞性能,上场挑战2023更
1、产生罚息这是金钱上的损失。如果信用贷款出现逾期,贷款机构会先电话催收贷款,提醒借款人还款,同时利率还会上浮,作为每天的罚息。虽然每
CFi CN讯:●股东持股的基本情况:截至本次减持前,内蒙古北方重型汽车股份有限公司(以下简称“公司”)持股5%以上股东特沃(上海)企业管理
二线城市率先取消楼市限购!中介:相比新政,更盼望小老板手里有钱
唐佳丽为防止民生调查样本老化、保证样本的科学性和代表性,我国一般每5年进行一次住户调查大样本轮换。近日,随着新一轮大样本轮换工作启动,
证券时报e公司讯,思美传媒12月21日晚间公告,持股8 78%的股东朱明虬拟15个交易日后的6个月内通过集中竞价交易方式减持公司股份1162 40万股(
日前,中国(天津)自由贸易试验区管理委员会发文,同意在滨海新区中心商务片区设立天津自贸试验区跨境投融资综合服务中心,在天津港(东疆)
12月20日湖南国企改革板块较上一交易日下跌0 85%,通程控股领跌。当日上证指数报收于3073 77,下跌1 07%。深证成指报收于10949 12,下跌1
吉林省奥迪一汽新能源汽车产业链招商大会20日在中国“汽车城”长春召开,吸引数百家中国零部件企业线上线下参会。奥迪一汽新能源汽车项目是中
本报告由华经产业研究院出品,对中国助听器行业的发展现状、竞争格局及市场供需形势进行了具体分析,并从行业的政策环境、经济环境、社会环境
泉峰汽车:南京泉峰汽车精密技术股份有限公司2021年公开发行可转换公司债券第二次临时受托管理事务报告(2022年度)
威海市商业银行发挥“链e贷”优势“贷”动链上企业发展2022年12月19日16:08中国网财经
李想和沈亚楠的内部信,说了两点:1 沈亚楠逐渐淡出;2 理想从过去的从垂直职能式组织进化到全面矩阵式组织升级。马斯克说他创造的不是每一
前言近期,因为国内防疫政策的变化,身边的同事和朋友陆续羊了,为了做好个人护理准备,同时也为了不让身边的同事和朋友过于慌张,我打算整理
队记:湖人倾向交易黑贝纳恩优先级不再是送走威少,威少,湖人,帕特里克·贝弗利,交易,贝纳恩
大牛证券&#132中国平安:寿险改革将于年底收关
读创 深圳商报记者梁瑛三只小海龟玩捉迷藏游戏,小海龟还没开始找,就发现了忍不住打喷嚏的同伴;另一位同伴身上的塑料袋发出“哗啦啦”的响声
截至2022年12月16日收盘,香溢融通(600830)报收于6 21元,较上周的6 23元下跌0 32%。本周,香溢融通12月15日盘中最高价报6 29元。1
证券时报e公司讯,企查查APP显示,近日,安徽乾景元隆新能源有限公司成立,注册资本5000万元,经营范围包含新兴能源技术研发;电池制造;电池
而且,今年国家加大了对农业的投入。2018-2019年猪价走势如何?今天猪崽的价格是多少?现在猪肉价格很低。15块钱保持在20 斤,成活率没问题。
截至2022年12月15日收盘,九华旅游(603199)报收于27 7元,下跌3 11%,换手率3 24%,成交量3 58万手,成交额1 0亿元。
Copyright 2015-2022 南极酒业网 版权所有 备案号:粤ICP备2022077823号-13 联系邮箱: 317 493 128@qq.com