go语言中使用 contex实现goroutine的取消

package mainimport ("context""fmt""sync""time"
)// context 如何优雅的控制子goroutine
var wg sync.WaitGroupfunc f(ctx context.Context) {defer wg.Done()//整个缩进都会跳出
LOOP:for {fmt.Println("child goroutine")time.Sleep(time.Second)select {// 没有值就不走,只有有值得时候才会走case <- ctx.Done():break LOOPdefault:}}
}func main() {ctx, cancelFunc := context.WithCancel(context.Background())wg.Add(1)go f(ctx)time.Sleep(time.Second * 5)// cancelFunc 就会取消对应的goroutine// case <- ctx.Done(): 会触发cancelFunc()wg.Wait()//
}

go语言goroutine的取消相关推荐

  1. [Go语言入门] 14 Go语言goroutine和通道详解

    文章目录 14 Go语言goroutine和通道详解 14.1 goroutine 14.2 通道(channel) 声明通道变量 创建通道 通道操作 14.3 管道 14.4 单向通道 14.5 通 ...

  2. TODO:Go语言goroutine和channel使用

    2019独角兽企业重金招聘Python工程师标准>>> TODO:Go语言goroutine和channel使用 goroutine是Go语言中的轻量级线程实现,由Go语言运行时(r ...

  3. channelinactive触发后不关闭channel_Go语言 | goroutine不只有基础的用法,还有这些你不知道的操作...

    今天是golang专题第15篇文章,我们来继续聊聊channel的使用. 在我们的上篇文章当中我们简单介绍了golang当中channel的使用方法,channel是golang当中一个非常重要的设计 ...

  4. java case用法_Go语言 | goroutine不只有基础的用法,还有这些你不知道的操作

    今天是golang专题第15篇文章,我们来继续聊聊channel的使用. 在我们的上篇文章当中我们简单介绍了golang当中channel的使用方法,channel是golang当中一个非常重要的设计 ...

  5. 易语言一键选中取消选择列表框源码

    对选择列表框实现一键选中取消,可以推广到超级列表框等组件. 选中取消选择列表框源码 .版本 2.局部变量 m, , , , 511遇见论坛(bbs.511yj.com) .局部变量 n, , , , ...

  6. go语言--goroutine

    一.goroutine goroutine就是Go语言提供的一种用户态线程.Go自己实现了goroutine的调度器(Scheduler),Go的调度器由三部分组成: M:指的是Machine,一个M ...

  7. Go语言 goroutine

    一.概念介绍 Go 语言是原生支持语言级并发的,这个并发的最小逻辑单元就是 goroutine.goroutine 就是 Go 语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的.当我 ...

  8. c++ 初始化 代码 应放在那里_Go语言goroutine调度器初始化 (12)

    先吐槽一下,知乎编辑器居然不支持汇编语言,代码的空格也给我弄没了,你说你把运算符两边的空格搞掉就搞掉吧,还能看,你为啥要把if, for后面的空格也搞掉啊... 本文是<Go语言调度器源代码情景 ...

  9. c语言中说取消标识符是,2019年全国计算机二级C语言考试考点解析(3)

    头文件.数据说明.函数的开始和结束标志 1.头文件:也称为包含文件或标题文件,一般放在一个C语言程序的开头,用#include″文件名″的格式,其中文件名是头文件名,一般用.h作为扩展名. 2.数据说 ...

最新文章

  1. mysql的worker 线程_MySQL线程
  2. html select以数组的方式提交
  3. oracle创建数据库后干什么,手动创建Oracle数据库之前因后果
  4. 2.9 学习率衰减-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  5. 数据可视化(二)Matplotlib pandas简易入门
  6. Java:抽象类笔记
  7. python+requests接口测试基础
  8. 「总结」 MLEAutoMaton的各种板子总结
  9. excel 2016 新建时 出现 内存或磁盘不足错误的解决方法
  10. JAVA-WEB-错误之-'OPTION SQL_SELECT_LIMIT=DEFAULT'
  11. docker安装gamit_ubuntun10.10中安装gamit 10.40
  12. 论文阅读:Unprocessing Images for Learned Raw Denoising
  13. 手机重装android系统,安卓手机系统怎么重装(刷机)
  14. 24券的“天才”创始人如何打坏一手好牌(转载)
  15. RocketMQ Message相关命令【实战笔记】
  16. Create和OnCreate的关系
  17. 文件系统之软连接、硬链接的区别/文件删除与空间的联系/df和du的区别
  18. 《中国主要城市道路网密度监测报告》正式发布
  19. 男人至少的道德底线(男女都该看)
  20. 我的世界手机版怎么增加服务器,我的世界手机版服务器怎么创建

热门文章

  1. 8工具来优化你的图像
  2. nyoj 1272 表达式求值(中缀式转后缀式)
  3. Hadoop Yarn内存使用优化配置
  4. 如何建立软件测试管理体系?
  5. android 调试
  6. windows 文件名太长无法删除的解决方法
  7. HDU 1247(Hat’s Words )
  8. velocity 继续之 语法学习篇
  9. LoadRunner 8.1 学习笔记4
  10. Python 日常练习1