例如:根据若干url异步加载多张图片,在都下载完成后合成一张整图
解决:使用dispath Group追加block到Global Group Queue,这些block如果全部执行完毕,就会执行Main Dispatch Queue中的结束处理的block
// 创建队列
dispatch_group_t group = dispatch_group_create();
// 获取全局并发队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_async(group, queue, ^{
// 加载图片1
});
dispatch_group_async(group, queue, ^{
// 加载图片2
});
dispatch_group_async(group, queue, ^{
// 加载图片3
});
// 当并发队列组中的任务执行完毕后才会执行这里的代码
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
// 合并图片
});