main入口启动一个协程a
协程a里面又启动一个协程b
如果a协程满足一个条件, 需要通知b关闭协程, 以及自身也需要关闭协程
请问下这个需求,在golang中怎么实现?
###context 就是专门用来解决这件事的
###go 无法关闭协程, 你用context 你也要开一个协程序去监听context的信号
func demo(ctx context.Context) string {
resp := make(chan string)
go func () {业务逻辑}()
for {
select {
case <-resp:
case <-ctx.Done:
}
}
}
这样玩可能导致 goruntine泄漏