GO 计算所有并发任务的总时间 WaitGroup

发布时间:2021-08-02 23:31 来源:https://blog.51cto.com/shijian 阅读:167 作者:软件工程小施同学 栏目: 云计算 欢迎投稿:712375056

func worker(t *testing.T, client *ChainClient, count int, wg *sync.WaitGroup) { for i := 0; i < count; i++ { _, err := testUserContractClaimInvoke(client, "save", false) require.Nil(t, err) } wg.Done() }

 

 

开发过程中,经常遇到task之间的同步问题。例如,多个子task并发完成一部分任务,主task等待他们最后结束。

 

在Go语言,实现同步的一种方式就是WaitGroup。

t1 := time.Now() var wg sync.WaitGroup for i := 0; i <= 10; i++ { wg.Add(1) go worker(t, client,1, &wg) } wg.Wait() t2 := time.Now() fmt.Println("total time:") fmt.Println(t2.Sub(t1))

 

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。