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