GCD-调度组

如果有多个执行任务,我们希望他们都执行完成后执行某一操作,可以采用调度组。

1、创建调度组:

dispatch_group_t group = dispatch_group_create();

2、创建并发任务:

// 创建并发队列
dispatch_queue_t queue = dispatch_queue_create("A", DISPATCH_QUEUE_CONCURRENT);
for (int i = 0; i < 10; i++) {
    // 添加多个并发异步操作到调度组
    dispatch_group_async(group, queue, ^{
        // 执行异步任务
    });
}

3、接收通知:

// 当group中所有操作执行完成后发出通知
dispatch_group_notify(group, queue, ^{
    NSLog(@"ending work done in %@", [NSThread currentThread]);
});

注意:
1、串行队列也是可以使用调度组的,并行用的比较多。
2、调度组相当于一个调度表单,每个异步操作进入组的时候登记,执行完成的时候,退出组,这样当组检测到没有操作的时候就进行反馈。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容