44、通过Dispatch Group机制,根据系统资源状况来执行任务
dispatch group 是GCD的一项特性,能够把任务分组。调用者可以等待这组任务执行完毕,也可以在提供会掉函数之后继续往下执行,这组任务完成时,调用者会得到通知。
// 把任务编组
// 方法1:
void dispatch_group_async(dispatch_group_t group,
dispatch_queue_t queue,
dispatch_block_t block);
// 方法2:
void dispatch_group_enter(dispatch_group_t group);
void dispatch_group_leave(dispatch_group_t group);
// 等待group执行完毕:
// 方法1:
long dispatch_group_wait(dispatch_geoup_t group,
dispatch_time_t timeout); // 会阻塞
// 方法2:
void dispatch_group_notify(dispatch_group_t group,
dispatch_queue_t queue,
dispatch_block_t block);要点:
一系列任务可归入一个
dispatch group中。开发者可以在这组任务执行完毕时获得通知通过
dispatch group,可以在并发式派发队列里同事执行多项任务,此时GCD会根据系统资源状况来调度这些并发执行的任务。开发者若自己来实现此功能,则需编写大量代码
Last updated
Was this helpful?