GCD-Group
2015-12-10 18:38
246 查看
GCD把多个任务(下载图片)打包成一个组Group, 调用group_notify, 可以做其他的事情.
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //全局队列+异步执行 dispatch_queue_t queue = dispatch_get_global_queue(0, 0); //创建group对象 dispatch_group_t group = dispatch_group_create(); //将任务提到group中 dispatch_group_async(group, queue, ^{ [NSThread sleepForTimeInterval:5]; NSLog(@"第一个图片下载完毕%@", [NSThread currentThread]); }); dispatch_group_async(group, queue, ^{ [NSThread sleepForTimeInterval:2]; NSLog(@"第二个图片下载完毕:%@", [NSThread currentThread]); }); dispatch_group_async(group, queue, ^{ [NSThread sleepForTimeInterval:1]; NSLog(@"第三个图片下载完毕:%@",[NSThread currentThread]); }); NSLog(@"hshshshshhs"); //通知group中的任务执行完了(合成图片/回到主线程) dispatch_group_notify(group, queue, ^{ //三个图片已经全部下载完了(子线程) NSLog(@"三个图片下载完毕:%@", [NSThread currentThread]); //回到主线程 dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"回到主线程更新界面"); }); }); }
相关文章推荐
- Java 按值传递
- effective c++ 学习笔记2
- Oracle复习
- Python_基本数据结构示例
- Anti-nim博弈 John poj3480
- 【Html】隐性改变display类型
- OSX下代码打开系统首选项(system preferences)
- Eclipse 动态调试smali
- 解决ubuntu E: Encountered a section with no Package: header
- 1221: [HNOI2001] 软件开发
- jQuery的deferred对象详解
- 自动化持续集成Jenkins
- could not initialize proxy - no Session
- 如何使用Ubuntu Night配置sources.list
- 运行docker并使用内网私服仓库
- 机器学习 —— 极大似然估计与条件概率
- 利用闪回查看Oracle表历史时刻数据
- UIBezierPath Class Reference翻译
- Android类动态加载技术
- vitual box 及 ubuntu 安装及使用教程以及常见error