Go语言中通过WaitGroup控制并发

网站建设3年前发布
27 0 0

Channel能够很好的帮助我们控制并发,但是在开发习惯上与显示的表达不太相同,所以在Go语言中可以利用sync包中的WaitGroup实现并发控制,更加直观。,我们将之前的示例加以改造,引入sync.WaitGroup来实现并发控制。,• 首先我们在主函数中定义WaitGroup,• 每执行一个任务,则调用Add()方法,• 在主函数中我们利用Wait()方法等待并发结束,• 在调用的函数中,我们需要将WaitGroup以指针方式传入,否则将造成Deadlock,• 同时在函数执行完成后,调用wg.Done,我们使用defer实现,WaitGroup传入给函数时,需要以指针方式传递,否则会造成Deadlock,如果不想在函数中传递WaitGroup,也可以采用以下这种方式,通过并发匿名函数的方式,在主函数逻辑中对并发进行精准控制,运行结果如下,

© 版权声明

相关文章