golang 实现简单定时器

一般我们导入import ("time")包,然后调用time.NewTicker(1 * time.Second) 实现一个定时器:

func timer( ) {

  //新建计时器,120秒以后触发,go触发计时器的方法比较特别,就是在计时器的channel中发送值
  tick :=time.NewTicker( 120 * time.Second)

  for {
    select {
      //此处在等待channel中的信号,因此执行此段代码时会阻塞120秒
      case <-tick:
        xxx() //执行我们想要的操作
    }
  }
}

注意点:

  • golang 的 select 就是监听 IO 操作
  • case 里面应该是一个面向channel的IO操作,然后触发相应的动作。
  • for循环(无限循环),即每隔120S执行一次
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 能力模型 选择题 [primary] 下面属于关键字的是()A. funcB. defC. structD. cl...
    _张晓龙_阅读 25,008评论 14 224
  • 这两天了解了一下关于NIO方面的知识,网上关于这一块的介绍只是介绍了一下基本用法,没有系统的解释NIO与阻塞、非阻...
    Ruheng阅读 11,950评论 5 48
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,107评论 19 139
  • 并发基础 在说Golang的并发编程之前,先认识一下目前并发的几种实现方式: 1.多进程。操作系统实现的并发模型,...
    睡着别叫醒我阅读 6,705评论 0 1
  • 人说知人者智,自知者明,所以知人自知都不是一件容易的事。 在别人眼里我可能是一个性格外向乐观的人,事实上,我更喜欢...
    Fineyoga岳喜荣阅读 1,427评论 3 1

友情链接更多精彩内容