//**
//WaitGroup的使用
//
//*/
func main() {
	var wg  sync.WaitGroup
	wg.Add(1) //表示一个goroutine正在开始
	go func() {
		defer wg.Done() //确保在退出闭包的时候,向WaitGroup表明已经退出,defer一般释放资源
		fmt.Println("第一个协程....")
		time.Sleep(1)
	}()
	wg.Add(1)
	go func() {
		defer wg.Done()
		fmt.Println("第二个协程....")
	}()
	wg.Wait() //调用wait,告诉main goroutine,直到所有的子goroutine完成再退出。
	fmt.Println("All goroutines complete")
}

相关文章: