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

附言这是事件的照片:

go - 名为runtime.gopark的goroutine是什么?-LMLPHP

最佳答案

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

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

如果您希望对应用程序有更深入的了解并命名goroutine,则可以使用IDE的最新版本(例如2020.1.2(或更高版本)),并对代码进行注释,例如in this article

08-07 15:04