36、WaitGroup
00 分钟
2022-8-26
想要等待多个协程完成,我们可以使用 wait group
 
 
 
 
 
 
 
每个协程都会运行该函数
 
睡眠一秒钟,以此来模拟耗时的任务
 
 
 
这个WaitGroup用于等待这里启动的所有协程完成。注意:如果WaitGroup显式传递到函数中,则应使用 指针
 
启动几个协程,并为其递增WaitGroup的计数器。
避免在每个协程闭包中重复利用相同的i值 更多细节可以参考 the FAQ
 
将worker调用包装在一个闭包中,可以确保通知WaitGroup此工作线程已完成。这样,worker线程本身就不必知道其执行中设计的并发原语。
 
阻塞,直到WaitGroup这种使用方式没有直观的办法传递来自worker的错误。更高级的用例,请参见errgroup package
 
 
每次运行,各个协程开启和完成的时间可能是不同的
 
 
 
 
 
 
上一篇:
35、工作池
下一篇:
37、速率限制

评论