我可以通过它获得价值
"runtime.NumGoroutine()"
..
我可以知道外部程序中的goroutine数量吗?
答案 0 :(得分:3)
也许您可以使用delve
。
go get github.com/derekparker/delve/cmd/dlv
$pid
dlv attach $pid
,然后键入goroutines
以查看所有go例程,如下所示:C:\work\gowork>dlv attach 5696 Type 'help' for list of commands. (dlv) goroutines [5 goroutines] Goroutine 1 - User: C:/devsoft/Go/src/runtime/time.go:102 time.Sleep (0x440c3b) Goroutine 2 - User: C:/devsoft/Go/src/runtime/proc.go:292 runtime.gopark (0x42a03f) Goroutine 3 - User: C:/devsoft/Go/src/runtime/proc.go:292 runtime.gopark (0x42a03f) Goroutine 17 - User: C:/devsoft/Go/src/runtime/proc.go:292 runtime.gopark (0x42a03f) * Goroutine 19 - User: :0 ??? (0x7fffef855427) (thread 15260) (dlv)
然后,您的程序需要执行的操作是使用dlv
之类的命令来控制命令expect
,以控制调试工具输入goroutines
的命令。
似乎它有一个类似于xml-rpc的api以便客户端获取更多信息,您可以看看,我以前没有使用过api。
仅供参考,