任何人都可以通过给出一个简单的示例代码来告诉我Wait Group如何工作或可以实现(如果像this那样给出更好的话)?感谢。
答案 0 :(得分:0)
我不认为可以为您的示例实现等待组(或sync-mutex)。
答案 1 :(得分:0)
实施like this。 :)
答案 2 :(得分:0)
我找到了它的答案,即相互排除并发Go Routine。代码在http://play.golang.org/p/bdBRtA6vS7上。感谢。
答案 3 :(得分:0)
更简单的等待就像一个堆栈,您将一个项目放在堆栈上,然后在任务完成时将其弹出。 WaitGroup 将保存代码直到堆栈为空。请参阅下面的代码以获取简单的示例,应该能够提供帮助。它旨在管理作为 go 函数的多线程行为...
package main
import ("sync")
var (wg sync.WaitGroup )
func main() {
wg.Add(1). //Push 1
go func() {
// Do some code here
wg.Done() //pop 1
}()
wg.Add(1) //Push 1
go func() {
// Do some code here
wg.Done() //pop 1
}()
wg.Add(1) //Push 1
go func() {
// Do some code here
wg.Done() //Pop 1
}()
wg.Wait() // Until no more items to pop.
//Do the rest of your code here.
}