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结束的效果.

posted @ 2018-12-13 19:00  __Miracle  阅读(92)  评论(0编辑  收藏  举报