问答

关闭goroutine问题

作者:admin 2021-05-13 我要评论

main入口启动一个协程a 协程a里面又启动一个协程b 如果a协程满足一个条件, 需要通知b关闭协程, 以及自身也需要关闭协程 请问下这个需求,在golang中怎么实现? ###...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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泄漏

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 关闭goroutine问题

    关闭goroutine问题

  • php删除数组中的重复数据,只留下没有

    php删除数组中的重复数据,只留下没有

  • mongodb实际查询时间大于explain里的时

    mongodb实际查询时间大于explain里的时

  • 问一个element-ui 分页组件的问题

    问一个element-ui 分页组件的问题

腾讯云代理商
海外云服务器