package main import ( "fmt" "runtime" "sync" ) var wg = new(sync.WaitGroup) func a() { defer func() { wg.Done() }() for i := 0; i < 10; i++ { fmt.Printf("A: %d\n", i) } } func b() { defer func() { wg.Done() }() for i := 0; i < 10; i++ { fmt.Printf("B: %d\n", i) } } func main() { // goroutine 初始栈大小为2k // 设置 最大 线程数 // 默认为 CPU 线程数 // 线程过多会增加 上下文切换负担 runtime.GOMAXPROCS(1) wg.Add(2) go a() go b() wg.Wait() }