后端
跟面试官聊 Goroutine 泄露的 6 种方法,真刺激!
Posts on 煎é±0 次浏览
大家好,我是煎鱼。 前几天分享 Go 群友提问的文章时,有读者在朋友圈下提到,希望我能够针对 Goroutine 泄露这块进行讲解,他在面试的时候经常被问到。 今天的男主角,就是 Go 语言的著名品牌标识 Goroutine,一个随随便便就能开几十万个快车进车道的大杀器。 for { go func() {}() } 本文会聚焦于 Goroutine 泄露的 N 种方法,进行详解和说明。 为什么要问 面试官为啥会问 Goroutine(协程)泄露这种奇特的问题呢? 可以猜测是: Goroutine 实在是使用门槛实在是太低了,随手就一个就能起,出现了不少滥用的情况。例如:并发 map。 Goroutine 本身在 Go 语言的标准库、复合类型、底层源码中应用广泛。例如:HTTP Server 对每一个请求的处理就是一个协程去运行。 很多 Go 工程在线上出事故时,基本 Goroutine 的关联,大家都会作为救火队长,风风火火的跑去看指标、看日志,通过 PProf 采集 Goroutine 运行情况等。
原文:https://eddycjy.com/posts/go/goroutine-leak/
