《Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》(第四十四条:通过Dispatch Group机制,根据系统资源状况来执行任务)笔记
要点如下:
1、dispatch group是GCD的一项特性,可以把任务分组。这组任务完成后时,调用者会收到通知
据此,可将要并发执行的多个任务合并为一组,这样调用者就可以知道这些任务何时能全部执行完
2、创建dispatch group:
dispatch_group_t dispatchGroup = dispatch_group_create();
3、将任务分组的两种方式:
方式一、用dispatch_group_async:
void dipatch_group_async(dispatch_group_t group, dispatch_queue_t queue, dispatch_block_t block);
//比dispatch_async多了group分组这个参数
方式二、用dispatch_group_enter和dispatch_group_leave:
void dispatch_group_enter(dispatch_group_t group); //使分组里正要执行的任务数递增
void dispatch_group_leave(dispatch_group_t group); //使分组里的任务数递减
dispatch_group_enter和dispatch_group_leave就相当于