iPhone多线程(GCD)三
来源:互联网 发布:考研中南财经大学知乎 编辑:程序博客网 时间:2024/06/06 21:06
一.GCD(Grand Central Dispatch)
1.GCD提供分派队列dispatch queue,管理并分派任务,先进先出,先执行
2.队列分为3种类型
(1)主队列
任务执行的线程:主线程
分派任务的方式:串型队列(每个任务必须等待前一个任务执行过后 才可以执行)
(2)全局队列
任务执行的线程:子线程
分派任务的方式:并行队列(每个任务按顺序排发,但不需要等待前一个任务完成)
(3)自定义队列(自己创建)
任务执行的线程:子线程
分派任务的方式:串行和并行
以下是全局队列:
//获取全局队列,添加任务.这个任务有全局队列创建子线程,开启执行 dispatch_queue_t globalQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); //异步连接方法 dispatch_async(globalQueue, ^{ //这个block在执行是,是在子线程中 //建立同步连接获取图片 NSLog(@"%d",[NSThread isMainThread]); NSString * string = @"http://b.zol-img.com.cn/desk/bizhi/image/4/1024x768/1384831595796.jpg"; NSURL * url = [NSURL URLWithString:string]; //建立同步连接现在图片 NSData * data = [NSData dataWithContentsOfURL:url]; //图像获取成功后将图片显示在UI上,(这个任务必须在主线程中完成) //找主队列(添加任务) dispatch_async(dispatch_get_main_queue(), ^{ UIImage * image = [UIImage imageWithData:data]; _iamge.image = image; NSLog(@"%d",[NSThread isMainThread]); }); });
以下是自定义队列:
//创建queue,设置为并行模式 dispatch_queue_t myConcurrentQueue = dispatch_queue_create("com.lanou.GCD.myConcurrentQueue", DISPATCH_QUEUE_CONCURRENT); //添加任务 dispatch_async(myConcurrentQueue, ^{ //这个block在执行是,是在子线程中 //建立同步连接获取图片 NSLog(@"%d",[NSThread isMainThread]); NSString * string = @"http://b.zol-img.com.cn/desk/bizhi/image/4/1024x768/1384831595796.jpg"; NSURL * url = [NSURL URLWithString:string]; //建立同步连接现在图片 NSData * data = [NSData dataWithContentsOfURL:url]; //图像获取成功后将图片显示在UI上,(这个任务必须在主线程中完成) //找主队列(添加任务) dispatch_async(dispatch_get_main_queue(), ^{ UIImage * image = [UIImage imageWithData:data]; _iamge.image = image; NSLog(@"%d",[NSThread isMainThread]); }); }); dispatch_release(myConcurrentQueue);
0 0
- iPhone多线程(GCD)三
- iOS多线程之三 GCD
- IOS 多线程初探(三) - GCD
- iphone开发中的多线程:NSThread、NSOperation、GCD
- iOS的三种多线程技术----GCD
- 多线程创建 方法三: GCD 基础
- GCD高级用法(三) 多线程单例
- [多线程之三]-gcd操作练习
- GCD多线程
- 多线程GCD
- GCD多线程
- 多线程-GCD
- 多线程 gcd
- 多线程GCD
- 多线程&GCD
- GCD多线程
- 多线程GCD
- 多线程:GCD
- 在Android4.0中Contacts拨号盘界面剖析(源码)
- Redis学习笔记1-Redis的介绍和认识
- LBP特征理解
- 网络图片查看
- Perl中的单行注释和多行注释
- iPhone多线程(GCD)三
- 用Restlet创建面向资源的服务
- c++中关于const的一些细节问题
- php设计模式——UML类图
- HTTP cookies 详解
- Android USB Host
- Android notification动态设置网络图片icon
- 判别给定表达式中所含括号是否正确配对出现的算法
- 股票交易模型简介