什么是名为 runtime.gopark 的 goroutine?

Bat*_*Bat 3 go goroutine goland

我正在调试一个通过 Goland 用 go 编写的程序。在调试器中,我可以在正在运行的不同 goroutine 之间进行选择。我发现在我的 goroutine 旁边还有很多其他名为 runtime.gopark 的 goroutine,我怀疑这些是在线程池中等待工作的其他线程。但是,我在网上找不到任何答案。是这样吗?如果不是,它实际上在做什么?

PS这是事件的照片:

在此处输入图片说明

dls*_*per 8

Goroutines 没有命名。“runtime.gopark”是在调试器停止进程并获取代码执行快照时执行的包/函数。

特别是对于“runtime.gopark”,这意味着 goroutine 暂时“暂停”,由运行时调度程序暂停。

如果您希望更好地了解应用程序,并为 goroutine 命名,那么您可以使用 IDE 的最新版本,例如 2020.1.2(或更新版本),并像本文中描述的那样注释代码。