多线程
2015-09-13 21:15
579 查看
NSThread
1.Mac/ios 应用使用主线程来管理界面2.主线程与后台线程之间的通信
performSelectorOnMainThread performSelectorInBackground:withObject
3.锁
NSlock @synchronized
GCD
1.何时使用:知道用户何时更新了系统,通常会用到block(脱字符号 ^ )dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{});
2.GCD支持名为代码队列的概念,使用时需要指定将代码放到哪个队列上。
默认队列
主队列–>类似于主线程
3.GCD函数在主线程上更新用户界面
dispatch_sync(dispatch_get_main_queue(),^{});
4.GCD是实现后台处理的首选方式,使用GCD进行异步处理时,要求block每次都按照它们在代码中出现的顺心执行
dispathch_queue_create(DISPATCH_QUEUE_SERIAL,0)
5.创建顺序队列
属性 dispathch_queue_t serialQueue;
6.”Dispatch Queue”执行处理的等待队列,按照追加的顺序(FIFO)执行处理。
两种Dispatch Queue
Serial Dispatch Queue 等待现在执行中处理结束
Serial Dispatch Queue1–>使用一个线程
Serial Dispatch Queue2–>使用一个线程
Serial Dispatch Queue3–>使用一个线程
Serial Dispatch Queue4–>使用一个线程
(多个 Serial Dispatch Queue可并行执行)
Concurrent Dispatch Queue不等待现在执行中处理结束
dispatch_async(queue,blk0);
dispatch_async(queue,blk1);
dispatch_async(queue,blk2);
dispatch_async(queue,blk3);
dispatch_async(queue,blk4);
dispatch_async(queue,blk5);
dispatch_async(queue,blk6);
dispatch_async(queue,blk7);
7.如何得到 Dispatch Queue
dispathch_queue_create(程序员管理内存)
获取系统标准提供的Dispatch Queue(系统管理内存)
1.main Dispatch Queue(Serial Dispatch Queue)
2.Global Dispatch Queue(Concurrent Dispatch Queue)
8 Dispatch_set_target_queue
dispatch_queue_create函数生成的Dispatch Queue不管是Serial Dispatch Queue 还是Concurent Dispatch Queue,都使用与默认优先级Global Dispatch Queue相同执行优先级的线程。如果需要变更,就要用到dispatch_set_target_queue函数。
在后台执行动作处理的Serial Dispatch Queue的生成方法。
待续….
相关文章推荐
- C语言初步接触
- linux_磁盘管理与文件系统
- PreTranslateMessage作用和使用方法
- hdu5443(2015 ACM/ICPC Asia Regional Changchun Online )
- NSFileManager
- 漏洞,安全网址大全
- 《Windows服务器配置与管理》------文件系统管理
- Git之远程仓库
- 设计模式C++实现(8)——代理模式
- 设计模式C++实现(7)——外观模式、组合模式
- 百度UEditor本地化配置 笔记
- 第5章 泛型
- super关键字
- 【codevs2476】购买贺年卡 排序+贪心
- equals使用
- 兔子--android:gravity与android:layout_gravity的区别
- 宠物跟随效果
- 设计模式C++实现(6)——建造者模式(Builder)
- 局部内部类访问局部变量细节
- bzoj1597: [Usaco2008 Mar]土地购买