dispatch_group讲解

背景简介:

我们希望多个网络请求的结果都回来之后再做一些事情,那么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块,执行总结性处理。

任务是同步的时候

dispatch_group讲解_第1张图片
16E91EED-3708-49E8-A12A-D474A3E17C1F.png

任务是异步的时候

dispatch_group讲解_第2张图片
4B38460B-DCFF-4F98-8029-44AF065AACF0.png

如何将异步任务变同步

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


dispatch_group讲解_第3张图片
7406C433-AD06-42B1-B776-0DDCE3331429.png

你可能感兴趣的:(dispatch_group讲解)