1. package main
  2.  
  3. import (
  4. "fmt"
  5. "context"
  6. )
  7.  
  8. func main() {
  9. gen := func(ctx context.Context) <-chan int {
  10. dst := make(chan int)
  11. n :=
  12. go func() {
  13. for {
  14. select {
  15. case <-ctx.Done():
  16. return // returning not to leak the goroutine
  17. case dst <- n:
  18. n++
  19. }
  20. }
  21. }()
  22. return dst
  23. }
  24.  
  25. ctx, cancel := context.WithCancel(context.Background())
  26. defer cancel() // cancel when we are finished consuming integers
  27.  
  28. for n := range gen(ctx) {
  29. fmt.Println(n)
  30. if n == {
  31. break
  32. }
  33. }
  34. }

[GO]go使用contextCancel的更多相关文章

随机推荐

  1. 企业web管理软件开发平台

    可以自定义拖动记忆位置的part桌面 权限(功能菜单查看范围)设置界面 权限(人员数据查看范围)设置界面 菜单排序和名称设置界面 业务模块 自定义字段界面 业务功能  列表界面 业务功能   查询界面 ...

  2. cratedb joins 原理(官方文档)

      JOINs are essential operations in relational databases. They create a link between rows based on c ...

  3. graphql-yoga 项目简单使用&&集成docker

      graphql-yoga 是一个实现了grahql的框架,使用简单,便捷 具体源码参考github https://github.com/rongfengliang/graphql-yoga-do ...

  4. vue项目修改favicon

    首先你的在你的static文件中添加favicon.icon 然后通过以下方式进行修改 1)方式一:修改index.html文件 <link rel="shortcut icon&qu ...

  5. 在linux下利用nohup来后台运行java程序

    nohup java -jar /etc/deny/denyHttp_fat.jar & http://limaoyuan.iteye.com/blog/900928 http://zshou ...

  6. MHA配置文件说明

    root@192.168.0.20 ~]# cat /etc/masterha/app1.cnf [server default] manager_workdir=/var/log/masterha/ ...

  7. Javaweb经典三层架构的演变

    1.Javaweb经历了三个时期 ①JSP Model1第一代 JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的 ...

  8. python 书籍推荐 一

    最近"瑞丽模特学Python"的热点牵动了大江南北程序员的心,有人说这是炒作,也有人说这是推广Python的爆点...我嘿嘿一笑,美女就是美女,眼光那是杠杠的,不仅人美,学的语言也 ...

  9. [转]FluentData

    本文来自:http://fluentdata.codeplex.com/wikipage?title=Fluency&referringTitle=Home Documentation  Fl ...

  10. PHP CRC16 校验码的算法怎么使用

    PHP CRC16 校验码的算法如何使用最近用到CRC16, 我现在就是要把 010301180001 算出CRC16的校验码,通过其他工具,可以得到 校验码是 05F1 最后完整的代码就是 0103 ...