Go之路(三十二):Sync.WaitGroup
Sync.WaitGroup
可以用于控制一组goroutine
例如:
package main import( "time" "fmt" "sync" ) func main() { wg := sync.WaitGroup{} for i:=0;i<10;i++{ wg.Add(1) go func(){ time.Sleep(time.Second) fmt.Println(i) wg.Done() }() } wg.Wait() }
wg.Wait()只有在技术器等于0才会返回\
而每个goroutine在开始之前+1,结束后清零,就达到了控制goroutine结束的效果.