package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup func test(){ for i := 0; i < 10; i++ { fmt.Println("test() 你好golang-",i) time.Sleep(100 * time.Millisecond) } wg.Wait() //协程计数器减1 } func test2(){    for i := 0; i < 10; i++ {       fmt.Println("test() 你好golang-",i)       time.Sleep(100 * time.Millisecond)    }    wg.Wait() //协程计数器减1 } func main() { wg.Add(1) //协程计数器加1 go test() //表示开启test()一个协程    wg.Add(1) //协程计数器加1    go test2() //表示开启test2()一个协程 for i := 0; i < 10; i++ { fmt.Println("main() 你好go-",i) time.Sleep(20 * time.Millisecond) } wg.Wait() //等待所有协程结束后,主协程在结束 fmt.Println("main() 主线程结束") }