我已经使用WaitGroup作为此问题的解决方案。翻译您的当前代码,并附上一些日志,以明确正在发生的事情:
package mainimport "sync"import "fmt"import "time"type Object struct { //data}func (obj *Object) Update(wg *sync.WaitGroup) { //update data time.Sleep(time.Second) fmt.Println("Update done") wg.Done() return}func main() { var wg sync.WaitGroup list := make([]Object, 5) for { for _, object := range list { wg.Add(1) go object.Update(&wg) } //now everything has been updated. start again wg.Wait() fmt.Println("Group done") }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)