golang并发编程之Ticker

Timer只执行一次,Ticker可以周期的执行

icker是一个定时触发的计时器
它会以一个间隔(interval)往channel发送一个事件(当前时间)
而channel的接收者可以以固定的时间间隔从channel中读取事件

package mainimport ("fmt""time"
)func main() {// 创建定时器,每隔1秒后,定时器就会给channel发送一个事件(当前时间)ticker := time.NewTicker(time.Second * 1)counter := 1for range ticker.C {fmt.Printf("counter: %v\n", counter)counter++if counter >= 5 {break}}ticker.Stop()
}

运行结果
在协程里面通过ticker写入管道数据,在main读管道数据

package mainimport ("fmt""time"
)func main() {ticker := time.NewTicker(time.Second)chanInt := make(chan int)go func() {for range ticker.C {select {case chanInt <- 1:// fmt.Println("send ---> 1")case chanInt <- 2:// fmt.Println("send ---> 2")case chanInt <- 3:// fmt.Println("send ---> 3")}}}()sum := 0for v := range chanInt {fmt.Printf("receive <--- v: %v\n", v)sum += vif sum >= 10 {fmt.Printf("sum: %v\n", sum)break}}
}

运行结果

golang并发编程之Ticker相关推荐

  1. Golang 并发编程之Context

    Context 是 Golang 中非常有趣的设计,它与 Go 语言中的并发编程有着比较密切的关系,在其他语言中我们很难见到类似 Context 的东西,它不仅能够用来设置截止日期.同步『信号』还能用 ...

  2. Go语言自学系列 | golang并发编程之runtime包

    视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...

  3. cyclicbarrier java_Java并发编程之CyclicBarrier和线程池的使用

    原标题:Java并发编程之CyclicBarrier和线程池的使用 下面我们来讲述一下线程池和CyclicBarrier的使用和对比. 一.场景描述 有四个游戏玩爱好者玩游戏,游戏中有三个关卡,每一个 ...

  4. java线程安全的set_Java并发编程之set集合的线程安全类你知道吗

    Java并发编程之-set集合的线程安全类 Java中set集合怎么保证线程安全,这种方式你知道吗? 在Java中set集合是 本篇是<凯哥(凯哥并发编程学习>系列之<并发集合系列& ...

  5. zbb20180929 thread java并发编程之Condition

    java并发编程之Condition 引言 在java中,对于任意一个java对象,它都拥有一组定义在java.lang.Object上监视器方法,包括wait(),wait(long timeout ...

  6. python电路模型编程_14、python开发之路-并发编程之I/O模型

    十四.并发编程之I/O模型 http://www.cnblogs.com/linhaifeng/articles/7454717.html 1.模型介绍 1.1 IO种类 (1)* blocking ...

  7. java并发编程之4——Java锁分解锁分段技术

    转载自 java并发编程之4--Java锁分解锁分段技术 并发编程的所有问题,最后都转换成了,"有状态bean"的状态的同步与互斥修改问题.而最后提出的解决"有状态bea ...

  8. java 时间戳_Java并发编程之CAS三CAS的缺点 及解决办法

    Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理.那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是<凯 ...

  9. 并发编程之CPU缓存架构缓存一致性协议详解(二)

    并发编程之CPU缓存架构&缓存一致性协议详解 CPU高速缓存(Cache Memory) CPU高速缓存 在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就 ...

最新文章

  1. Verilog中`define和parameter有什么区别
  2. c#_textbox显示刷新规定行数的数据
  3. 图像处理与计算机视觉资源汇总——论文+代码+教材+视频等等
  4. 第十届蓝桥杯 等差数列(Python)
  5. C#_解决在控制台中输入Ctrl+Z的问题
  6. 线性表:5.约瑟夫环,循环链表及其C语言实现
  7. Linux C socket 编程之TCP
  8. 自旋锁--Test and Set Clock机制分析
  9. java jre 7_jre1.7官方下载|
  10. PMP-36项目风险管理
  11. 机顶盒ttl无法输入_请教大神,机顶盒接TTL进不了uboot模式
  12. C#文件和文件文件夹排序
  13. 我的脚本-一键禁用启用笔记本自带键盘
  14. 企业网站建设常用CMS建站系统推荐
  15. 初学docker理解二
  16. 程序员必备的6个辅助开发的软件神器
  17. 物联卡一直显示待激活怎么办_物联卡开始要求活体认证,这种纯流量卡你以后还管乱使用吗?...
  18. DC-DC,看这篇文章就够了
  19. 87_类成员的继承和重写
  20. 虚幻引擎(10)-切换控制权

热门文章

  1. MacBook安裝系統報錯
  2. 电脑计算机怎么没有桌面显示器,如果您听不懂,请问为什么计算机显示器没有OLED屏幕?...
  3. 计算机硬件知识硬盘,DIY硬件知识:小白必看的硬盘基础知识大全
  4. c++对8位灰度图进行二值化处理
  5. 《SolidWorks 2014中文版机械设计从入门到精通》——1.9 范例
  6. php predis连接超时,如何解决redis连接超时问题
  7. 联想Y50耳机插入耳机孔后没有声音解决办法
  8. 病案编码员需要计算机的什么知识,病案编码员要怎么学习?
  9. 微信朋友圈怎么发文字?纯文字动态发布教程
  10. 美团智能支付背后的前端工程师