美文网首页多线程
dispatch_group讲解

dispatch_group讲解

作者: charlotte2018 | 来源:发表于2018-01-15 13:45 被阅读29次

    背景简介:

    我们希望多个网络请求的结果都回来之后再做一些事情,那么dispatch_group做挺不错的.

    dispatch_group_t相关属性介绍

    1.dispatch_group_async(group, queue, block);
    将block任务添加到queue队列,并被group组管理

    2.dispatch_group_enter(group);
    声明dispatch_group_enter(group)下面的任务由group组管理,group组的任务数+1

    3.dispatch_group_leave(group);
    相应的任务执行完成,group组的任务数-1

    4.dispatch_group_create();
    创建一个group组

    5.dispatch_group_wait(group1, DISPATCH_TIME_FOREVER);
    当前线程暂停,等待dispatch_group_wait(group1, DISPATCH_TIME_FOREVER)上面的任务执行完成后,线程才继续执行。

    6.dispatch_group_notify(group1, queue1,block);
    监听group组中任务的完成状态,当所有的任务都执行完成后,触发block块,执行总结性处理。

    任务是同步的时候

    16E91EED-3708-49E8-A12A-D474A3E17C1F.png

    任务是异步的时候

    4B38460B-DCFF-4F98-8029-44AF065AACF0.png

    如何将异步任务变同步

    这种方式一般就是解决多个网络请求的结果都回来之后再做一些事情的问题.


    7406C433-AD06-42B1-B776-0DDCE3331429.png

    相关文章

      网友评论

        本文标题:dispatch_group讲解

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