上一篇文章记录了gcd的基本知识,上文链接,由于是查看资料,所以比较浅。最近遇到了一个情景:异步的上传多张图片,待所有的图片上传完成最后,才执行一个保存的操作。最开始写的错误代码如下,上传的地方就使用一个异步的线程来代替好了。
看如下代码,通过循环创建了三个异步的任务,分别延时三秒打印当前的下标,我们需要的结果是打印下标完成之后,最后打印group finish,但是
打印结果如下:可以看到最开始就打印了group finish,这个不是我们的预期结果,要想得到我们的预期结果,在异步线程的前面得要配合dispatch_group_enter,dispatch_group_leave来使用,如下代码
大多数情况应该又是在group里面有异步执行的操作,希望能够帮到你。