首页 > 解决方案 > 什么是名为 runtime.gopark 的 goroutine?

问题描述

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

PS这是事件的照片:

在此处输入图像描述

标签: gogoroutinegoland

解决方案


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

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

如果您希望更好地了解应用程序并命名 goroutine,则可以使用 IDE 的最新版本,例如 2020.1.2(或更高版本),并按照本文所述对代码进行注释。


推荐阅读