golang goroutine
package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup func test(i int) { wg.Done() //goroutine 结束就登记-1 fmt.Println("go routine", i) } func main() { fmt.Println("Start") // go test() // 开启一个单独的goroutine去执行test()函数 for i := 0; i < 10; i++ { wg.Add(1) //启动一个goroutine就登记+1 go test(i) } wg.Wait() //等待所有登记的goroutine都结束 fmt.Println("end") //main函数结束后,由main函数启动的goroutine也会退出 }