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也会退出
}

浙公网安备 33010602011771号