рассмотрим небольшой фрагмент ниже:
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 <id>
goroutine <id> <command>
, и если я хочу запустить шаг за шагом в goroutine 1, просто используйте команду
goroutine 1 next
В vscode кажется, что единственный способ справиться с goroutines - это стек вызовов, однако кажется, что это внутренние потоки во время выполнения go, а не goroutines, так как я могу сосредоточить запущенный процесс в указанной goroutine?