多线程

dispatch_group讲解

2018-01-15  本文已影响29人  charlotte2018

背景简介:

我们希望多个网络请求的结果都回来之后再做一些事情,那么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
上一篇下一篇

猜你喜欢

热点阅读