登录
首页 >  Golang >  Go问答

golang 中关于goroutine泄漏问题

来源:SegmentFault

时间:2023-01-08 09:01:41 469浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《golang 中关于goroutine泄漏问题》,涉及到go,有需要的可以收藏一下

问题内容

clipboard.png

上图是在gopl上看到的关于goroutine 泄漏的问题,道理我是明白的,就是如果有goroutine因为ch没有接收动作而被一直阻塞在发送处,无法被回收。
但是我自己写代码,这样的

func main() {
    ch := make(chan int)
    for i := 0; i 

这样子不是应该有两个goroutine被阻塞了啊,但是程序正常结束,没有goroutine leak的错误。我想请问导致goroutine leak的充分条件是什么?明显有未正常退出的goroutine只是必要条件,还有什么条件呢?

正确答案

你这样写不会阻塞,因为在不同goruntine里,循环的每个goruntine发送,main负责接收,但是这里因为main线程退出了,所以进程就结束了。

理论要掌握,实操不能落!以上关于《golang 中关于goroutine泄漏问题》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表