OC_GCD任务组在实际开发中的应用

在实际的开发中,我们常常会遇到这样的一种需求,就是多个网络请求数据全都请求完毕之后,才是使用主线程更新UI的情况,未解决这一问题,我总结了几种解决的方法。
  • 1.使用GCD线程组
  • 2.通过全局变量累加
  • 3.使用RAC信号绑定

1.多线在开发中出现的频率总的来说还是相对较的,下面主要说一下GCD线程组的实现方式。

主要有这么三个步骤
1.创建线程组
2.发起异步请求,处理耗时操作
3.耗时操作全部执行完毕后,回到主线程

dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //  执行一个耗时操作的异步操作
});
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //  执行一个耗时操作的异步操作
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    //  等待前面的异步操作都执行完毕后,回到主线程
});

2.使用全局变量计数,这是一种最简单的方法

3.使用RAC RAC 2.5的版本是OC的稳定版本,具体实现,可以去研究一下FRPH函数式编程[https://github.com/ReactiveCocoa/ReactiveCocoa.git]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容