等待协程结束
package main
import (
"fmt"
"sync"
)
var wg sync.WaitGroup // 1
func routine(i int) {
defer wg.Done() // 3
fmt.Printf("routine %v finished\n", i)
}
func main() {
wg.Add(10) // 2
for i := 0; i < 10; i++ {
go routine(i) // *
}
wg.Wait() // 4
fmt.Println("main finished")
}
-----------Output-------------
routine 3 finished
routine 9 finished
routine 0 finished
routine 4 finished
routine 5 finished
routine 6 finished
routine 7 finished
routine 8 finished
routine 1 finished
routine 2 finished
main finished最后更新于