golang sync WaitGroup
生活随笔
收集整理的這篇文章主要介紹了
golang sync WaitGroup
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
簡介
它能夠一直等到所有的goroutine執行完成,并且阻塞主線程的執行,直到所有的goroutine執行完成。
WaitGroup總共有三個方法:Add(delta int),Done(),Wait()。簡單的說一下這三個方法的作用。
Add:添加或者減少等待goroutine的數量
Done:相當于Add(-1)
Wait:執行阻塞,直到所有的WaitGroup數量變成0
示例
package mainimport ("fmt""sync""time" )func main() {var wg sync.WaitGroupfor i := 0; i < 5; i = i + 1 {wg.Add(1)go func(n int) {// defer wg.Done()defer wg.Add(-1)EchoNumber(n)}(i)}wg.Wait() }func EchoNumber(i int) {time.Sleep(3e9)fmt.Println(i) }輸出
0 1 2 3 4轉載于:https://my.oschina.net/u/572632/blog/884156
總結
以上是生活随笔為你收集整理的golang sync WaitGroup的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laravel 重要概念 以及实现方式
- 下一篇: Golang学习笔记——Slice