Go 如何查看正在执行的goroutine数量?

参考解析

程序中引入pprof pakage

在程序中引入pprof package:

  1. import _ "net/http/pprof"

程序中开启HTTP监听服务:

  1. package main
  2. import (
  3. "net/http"
  4. _ "net/http/pprof"
  5. )
  6. func main() {
  7. for i := 0; i < 100; i++ {
  8. go func() {
  9. select {}
  10. }()
  11. }
  12. go func() {
  13. http.ListenAndServe("localhost:6060", nil)
  14. }()
  15. select {}
  16. }

分析goroutine文件

在命令行下执行:

  1. go tool pprof -http=:1248 http://127.0.0.1:6060/debug/pprof/goroutine

会自动打开浏览器页面如下图所示

546.Go 如何查看正在执行的goroutine数量? - 图1

在图中可以清晰的看到goroutine的数量以及调用关系,可以看到有103个goroutine