美文网首页
GCD-调度组

GCD-调度组

作者: labi3285 | 来源:发表于2017-09-14 23:07 被阅读20次

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

    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、调度组相当于一个调度表单,每个异步操作进入组的时候登记,执行完成的时候,退出组,这样当组检测到没有操作的时候就进行反馈。

    相关文章

      网友评论

          本文标题:GCD-调度组

          本文链接:https://www.haomeiwen.com/subject/ugpjsxtx.html