package main import ( "fmt" "runtime" "sync" ) func main() { //这里控制cpu核数 runtime.GOMAXPROCS(1) //这里等待锁的协程组 wg := sync.WaitGroup{} //这里是添加20个携程 wg.Add(20) for i := 0; i < 10; i++ { go func() { fmt.Println("i: ", i) //释放协程执行 wg.Done() }() } for i := 0; i < 10; i++ { go func(i int) { fmt.Println("i: ", i) //释放协程执行 wg.Done() }(i) } //这里是主线程阻塞等待协程完成 wg.Wait() } ------------------------------ 这里主要是控制在一个cpu上,通过sync.WaitGroup{} 实现类似队列功能,然后来阻塞主线程执行,等待子线程完成再执行主线程