请考虑下面这个小片段:
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
for i := 1; i < 100; i++ {
fmt.Println("A:", i)
}
}()
go func() {
defer wg.Done()
for i := 1; i < 100; i++ {
fmt.Println("B:", i)
}
}()
wg.Wait()
}
在Delve中,我们可以使用命令轻松地在goroutine之间切换,例如
goroutine
goroutine <id>
goroutine <id> <command>
如果我想在goroutine 1中逐步运行,只需使用以下命令
and if i want run step by step in goroutine 1, just use the command
goroutine 1 next
在vscode中,似乎处理goroutine的唯一方法是调用堆栈,但是这似乎是go运行时中的内部线程而不是goroutine,那么我该如何关注指定goroutine中的运行过程呢?