iOS多线程-gcd篇(一)-对group的补充

    上一篇文章记录了gcd的基本知识,上文链接,由于是查看资料,所以比较浅。最近遇到了一个情景:异步的上传多张图片,待所有的图片上传完成最后,才执行一个保存的操作。最开始写的错误代码如下,上传的地方就使用一个异步的线程来代替好了。

    看如下代码,通过循环创建了三个异步的任务,分别延时三秒打印当前的下标,我们需要的结果是打印下标完成之后,最后打印group finish,但是

iOS多线程-gcd篇(一)-对group的补充

打印结果如下:iOS多线程-gcd篇(一)-对group的补充可以看到最开始就打印了group finish,这个不是我们的预期结果,要想得到我们的预期结果,在异步线程的前面得要配合dispatch_group_enter,dispatch_group_leave来使用,如下代码

iOS多线程-gcd篇(一)-对group的补充

在异步线程的开始和结尾要加上如上图所示函数,就能得到我们想要的结果,打印结果如下

iOS多线程-gcd篇(一)-对group的补充

    大多数情况应该又是在group里面有异步执行的操作,希望能够帮到你。