Go定时器的三种实现方式
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。
【资料图】
使用休眠,让当前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定时器的三种实现方式
- 涨停雷达:互联网金融个股异动 生意宝触及涨停
- 突发!镍市生变?-环球关注
- 短期薪酬确认和计量的内容有哪些
- 科瑞技术(002957)12月20日主力资金净买入21.98万元 全球看热讯
- 元隆雅图董秘回复:公司将视市场情况进行新产品的开发
- 分析人士:四大积极因素助A股信心修复
- 天润工业: 第六届监事会第二次会议决议公告-全球消息
- 来钱花(马上金融)逾期八个月延迟还款征信有什么影响
- 【机构调研记录】长安基金调研浙海德曼-世界快看
- 中央经济工作会议强调着力扩大国内需求有何深意?
- 快e贷网贷逾期50年还不起影响征信吗
- 【播资讯】解除劳动合同拖欠工资多长时间算违法
- 【天天新视野】莱茵生物: 关于控股股东、实际控制人部分股份质押的公告
- *@机器人与机器视觉:微资讯
- 买房银行怎么贷款合适,买房贷款利息怎么算
- 协鑫集成: 第五届董事会第三十二次会议决议公告:微速讯
- 哪些是属于金融凭证诈骗罪?_天天报资讯
- 今日热搜:河北自贸区板块12月14日跌1.31%,华夏幸福领跌,主力资金净流出1038.99万元
- 【独家焦点】新化股份: 新化股份独立董事关于第五届董事会第二十一次会议的独立意见
- 当前关注:华润三九:华润三九“布洛芬混悬液“已获得国家药品监督管理局批准上市
- 新华全媒+ | 南京,城祭
- 【特约大V】Option Jack:美国今晚CPI数据后对港股的影响
- 网贷逾期七年的后果
- 全球视点!ST步森12月12日涨停分析
- 2Tb的SSD固态降价 跌到400元以下 没人买机械硬盘了-热头条
- 当前动态:四会富仕:公司在载板领域仍处于技术研发积累阶段
- 我武生物(300357):独立董事提名人声明(徐国良)
- 海南防疫政策调整首日:机票、酒店搜索预订量成倍上涨
- 中国中免:经查,公司与“凤凰金融”无任何合作关系|世界快消息
- 中国外汇交易中心推出外币ESG债券三方回购业务
- 广西3.8亿元专项资金 支持漓江流域横向生态补偿
- 恐龙呼吸道感染首个证据发现 几万年前的恐龙也患感冒
- 台风“圆规”携风裹雨来袭 广东深圳、珠海等地停课停工
- 西藏米林“家庭农场”:引领种植产业 助力乡村振兴
- 从东北到西北 他在“军垦第一城”规划着城建未来
- 新疆阿克苏地区库车市发生4.1级地震 震源深度21千米
- 环球影城过山车突然停驶 游客被困十米高
- 新版控烟条例效果如何?禁烟区依然烟熏火燎
- 还在打赏假脸女主播?来看视频“变装秀”
- 大雨洪水中的这7个瞬间,让我们流泪了……
- 台风“圆规”将登陆 广东多地停课停工
- 哈尔滨市新增治愈出院本土新冠肺炎确诊病例8例
- 西藏普兰边检民警:让孤寡老人迎来有“儿女”陪伴的温馨重阳节
- 上海率先出台《住宅装饰装修质量验收规范》团体标准
- 吴谢宇称死刑“量刑太重”上诉 二审新增一名辩护律师
- 粤启动最高标准防御台风“圆规” 深圳珠海等多地停课停工
- 山西大同:受近期气温骤降影响 11日起陆续供暖
- 媒体记者赞开封古城墙夜景 宛如时空隧道式“穿越”体验
- 风雨无情,携手共“晋”
- 有助降低农业磷肥施用 科研人员在植物磷营养吸收上取得新发现
- 台风“圆规”给福建带来风雨影响 福建转移近3万人
- 生物多样性“家谱”扩容 杭州桐庐发现低危新记录种天目臭蛙
- 亲身感受技能魅力和力量 近40位外交官在沪“走进世赛”
X 关闭
最新资讯
- 福建发布台风黄色预警信号 福州海警守护辖区渔船民安全
- 广西新增境外输入确诊病例8例 新增境外输入无症状感染者1例
- 雷锋精神:做“永不生锈的螺丝钉”
- 风雨同舟 谱写抗洪壮歌
- 晋陕全力做好防汛救灾 恢复生产工作
- 哈尔滨多地风险等级调整为低风险
- 激流勇“晋”!一组谐音成语致敬山西
- 海河流域上游强降雨后泄洪 洪峰预计今晚进入天津
- 河南卫辉村民抢收蔬菜捐赠山西:俺分文不要
- 台风“圆规”致海南进出岛客运暂停
- “圆规”加强为台风级 将在海南琼海到陵水一带沿海登陆
- 为了百分之五的孩子:残疾儿童如何接受九年义务教育?
- 关乎教育公平感 禁止收集家长职务信息该成为明规则
- 台风“圆规”将登陆 较强冷空气将影响我国大部地区
- “圆规”加强为台风级 中央气象台发布台风橙色预警
- 骗财、自杀、诱奸……四个关于“饭圈女孩”的故事
- 绥化“战疫”,有群“做好事上瘾”的年轻人助攻
- 这些“反诈App”,关键时刻或能帮上你
- 北京秋雨又上线夜间大部有小雨 15日起大风降温来袭
- 收养12个患病弃婴 在这个家庭亲情不一定与血缘联系
- 学生被家暴学校却保持缄默?强制报告制度还需更多配套
- 教培退潮,成人职教成为培训机构入局、转型热门选项
- 文化场馆活动 展现多彩魅力
- 既要“富口袋”也要“富脑袋”
- 落马官员违纪违法:自认国企特殊 享乐放纵迷打球
- 2021年中国汽车行业用户满意度指数测评结果发布
- 1000度近视坐过山车致视网膜脱落 眼科专家:高度近视用力咳嗽、打喷嚏都有可能造成悲剧
- 家庭养老床位“无人照护如有人” 安装适老智能设备 24小时远程监护
- 3小时话剧《长安第二碗》浓缩40年来时代巨变
- 1738元机票提前10天退竟要扣1182元退票费
- 在“未来工厂”,老师傅变身“新工人”
- 面对气候变化,文物保护要有前瞻性
- 挪用公款并收受别墅 是否应并罚
- 国道244陕西留坝县武关驿段出现山体塌方
- 厦门做细文化遗产保护监督 联合会商促整改
- 大熊猫国家公园正式设立 四年试点受益的不仅是大熊猫
- 人工智能+3D打印,做出一口好“牙”
- 大熊猫的故乡藏着哪些“生物多样性”密码?
- 我国正式设立首批五个国家公园 大熊猫国家公园“转正”
- 郑州追征一网红600多万元税款 网络主播补税潮要来了?
- 成都中小学劳动教育纳入必修课 每周不少于1课时
- 161天减重31.2斤! 41岁癌症晚期男子惊艳健美大赛舞台
- 解密《长津湖》《火红年华》共同的DNA 以真实人物为原型
- 电价只降不升预期打破 限制高耗能产业盲目发展
- 成都已建成783条“回家的路” 条条通往幸福
- 中外院士“智汇”成都 带来人工智能最新突破方向
- 车祸需赔5.3万余元,他打零工10余年终还清
- 野生象群对人类的信任在逐渐增加
- 北京东西城“罚教管”综合治理斑马线 机动车礼让渐成习惯
- 前三季度新登记新能源汽车同比增178.49%
X 关闭