美文网首页
GCD 学习(四) dispatch_group

GCD 学习(四) dispatch_group

作者: lfp901020 | 来源:发表于2017-12-19 09:59 被阅读7次

    GCD 学习(四) dispatch_group

    如果想在dispatch_queue中所有的任务执行完成后在做某种操作,在串行队列中,可以把该操作放到最后一个任务执行完成后继续,但是在并行队列中怎么做呢。这就有dispatch_group 成组操作。比如

    dispatch_queue_t dispatchQueue = dispatch_queue_create("ted.queue.next", DISPATCH_QUEUE_CONCURRENT);

    dispatch_group_t dispatchGroup=dispatch_group_create();

    dispatch_group_async(dispatchGroup, dispatchQueue,^(){

    NSLog(@"dispatch-1");

    });

    dispatch_group_async(dispatchGroup, dispatchQueue,^(){

    NSLog(@"dspatch-2");

    });

    dispatch_group_notify(dispatchGroup, dispatch_get_main_queue(),^(){

    NSLog(@"end");

    });

    上面的 log1 和log2输出顺序不定,因为是在并行队列上执行,当并行队列全部执行完成后,最后到main队列上执行一个操作,保证“end”是最后输出。 另外,这里也可以不用创建自己的并行队列,用全局的global,那个也是个并行队列. dispatch_get_gloable_queue(0,0);

    相关文章

      网友评论

          本文标题:GCD 学习(四) dispatch_group

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