go - 什么是名为 runtime.gopark 的 goroutine?
问题描述
我正在调试一个通过 Goland 编写的程序。在调试器中,我可以在正在运行的不同 goroutine 之间进行选择。我发现在我的 goroutine 旁边还有很多其他名为 runtime.gopark 的 goroutine,我怀疑这些是在线程池中等待作业的其他线程。但是,我在网上找不到任何答案。是这样吗?如果不是,它实际上在做什么?
PS这是事件的照片:
解决方案
Goroutines 没有命名。“runtime.gopark”是调试器停止进程并拍摄代码执行快照时执行所在的包/函数。
特别是对于“runtime.gopark”,这意味着 goroutine 暂时“暂停”,由运行时调度程序暂停。
如果您希望更好地了解应用程序并命名 goroutine,则可以使用 IDE 的最新版本,例如 2020.1.2(或更高版本),并按照本文所述对代码进行注释。
推荐阅读
- docker - 无法登录 Docker 将图像推送到 Github
- java - 我无法在java中的方法中更改文件名
- mysql - MySQL 使用 Explain 优化执行计划中的查询
- react-native - 错误:错误:无法从`App.js`解析模块`fs`:在项目中找不到fs
- c++ - 使用带有 MCP23017 的 pigpio 进行中断读取
- http-headers - .pcapfile 中以下代码的功能是什么
- angular - 我如何等到订阅完成后再返回另一个函数的值
- python - 未捕获的错误:NameError:未定义名称“true”
- c# - 无法在 ASP.net MVC 中的标识类和本地标识类之间进行转换
- python-3.x - 如何在pyspark中使用groupby创建索引列、2窗口移动平均列和2窗口差异列