Channel能够很好的帮助我们控制并发,但是在开发习惯上与显示的表达不太相同,所以在Go语言中可以利用sync包中的WaitGroup实现并发控制,更加直观。,我们将之前的示例加以改造,引入sync.WaitGroup来实现并发控制。,• 首先我们在主函数中定义WaitGroup,• 每执行一个任务,则调用Add()方法,• 在主函数中我们利用Wait()方法等待并发结束,• 在调用的函数中,我们需要将WaitGroup以指针方式传入,否则将造成Deadlock,• 同时在函数执行完成后,调用wg.Done,我们使用defer实现,WaitGroup传入给函数时,需要以指针方式传递,否则会造成Deadlock,如果不想在函数中传递WaitGroup,也可以采用以下这种方式,通过并发匿名函数的方式,在主函数逻辑中对并发进行精准控制,运行结果如下,
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/19252.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别