AI 与机器学习
Goroutine 一泄露就看到他,这是个什么?
Posts on 煎é±0 次浏览
大家好,我是煎鱼。 作为一个 Go 语言的使用大户,常常就有人冷不丁的,一下就泄露了…泄露了啥? 表象来看当然是 goroutine 泄露了,这时候就会有小伙伴开始跑去拉取 PProf。就会看到类似下面这张图: 重点会看到 runtime.gopark 这个函数,在所有的 goroutine 泄露中都会看到有,并且都会是大头。 既然是大头,也就会有许多朋友以为他是泄漏点,在那一顿猛查,那这个函数到底是什么,作用是? runtime.gopark 是何物 想要知道 runtime.gopark 函数是作用,最快的办法就是看源码了。其实现细节在 src/runtime/proc.go 文件中。 源代码如下: func gopark(unlockf func(*g, unsafe.Pointer) bool, lock unsafe.Pointer, reason waitReason, traceEv byte, traceskip int) { mp := acquirem() gp := mp.
原文:https://eddycjy.com/posts/go/runtimepark/

