go并发编程之context

go并发编程之context

1.什么是context?

   context是一种通知手段,例如现在后台有一个监听进程,你要如何在主进程中停止这个监听进程呢?有人会说,select+channel好了嘛,只要主进程往channel里面写数据,后台监听进程读取到channel里面的数据就停止,这其实是一个不错的方法,但是如果后台进程又起了100个后台进程呢?我关闭后台进程的时候,想顺便把后台进程起的子进程一起关掉,select+channel明显就不太行了。

   子进程会起子进程,我们很容易就能联想到,监听进程就是这棵树的根结点,监听进程起的子进程相当于这颗树的某个节点或者叶子节点,其实面对这种场景,我门想要的就是,如果我们向这棵树的某个节点程序发送通知,那么该节点的子节点程序也能收到该通知,而context就是定义这种树形关系的工具,context与context是有父子关系的,只要往ctx1发送消息,那么ctx1的子ctx2就能接收到消息,但是我们并不能决定context发送消息的内容,只能发送取消通知,就像我拍拍你的头,跟你说乖,一样简单的问候。

 

2.怎么做?</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值