ios--多线程复习笔记
来源:互联网 发布:中国核弹数量知乎 编辑:程序博客网 时间:2024/06/11 11:14
原文摘自:www.51cto.com,视频连接http://edu.51cto.com/lesson/id-13922.html
1、什么是多线程?
在线视频播放器:
- 从网上下载对应视频数据;
- 播放这些数据
同一时间,让多个代码语句同时执行。
2、多线程的好处:
- 提高应用程序的感知响应;
- 提高应用程序在多核系统上的实时性能。
3、ios中多线程技术:
- NSThread (几乎不用)
- NSOperation (主要用于网络下载)
- GCD (Grand Central Dispatch)
4、GCD是苹果公司提供的一套并发解决方案,用于ios4以上。
其工作原理:把任务放到对应队列中,根据可用的处理资源,安排这些任务在任何可用的处理器核心上执行。
一个任务可以是一个函数function或一个block(用得更多)。
GCD中队列称为dispatch queue,它可以保证先进来的任务先得到执行。
5、dispatch queue分类:
- main dispatch queue :用于执行所有与UI操作相关的任务,在主线程中执行。宏dispatch_get_main_queue()
- global dispatch queue:可以并发地执行多个任务,但是执行完成的顺序是随机的,用于执行后台任务。函数dispatch_get_global_queue(0,0)。
- 自定义的dispatch queue : 用于执行和UI操作无关的任务。一次只执行一个任务,而且是按顺序执行的。
提交任务到dispatch queue分为同步提交void dispatch_syno 和异步提交void dispatch async。
6、典型的应用情景:
为了避免界面在处理耗时的操作时卡死,比如读取网络数据,IO,数据库读写等,我们会在另外一个线程中处理这些操作,然后通知主线程更行界面。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
//耗时的操作
dispatch_async(dispatch_get_main_queue(),^{
//更新界面UI的操作
});
});
0 0
- ios--多线程复习笔记
- JAVA复习笔记--------多线程
- Java复习笔记—多线程
- iOS复习笔记12:分类
- iOS复习笔记15:NSObject
- iOS多线程复习(只是熟悉而已)
- 《Java核心技术》复习笔记 - 第十四章 多线程
- 复习 Core Java Chap14 多线程 笔记
- 多线程编程复习笔记 进程与线程
- 多线程编程复习笔记 线程的创建
- 第二天复习多线程的笔记整理
- iOS 多线程笔记
- iOS多线程笔记
- iOS笔记_12_多线程
- iOS多线程学习笔记
- Ios多线程学习笔记
- iOS 学习笔记 多线程
- iOS多线程学习笔记
- Windows 8.1 读取OAKEY代码
- java-反射机制
- php 正则表达式
- 畅通工程续(最短路_弗洛伊德算法,最短路_迪杰斯特克拉算法,最短路_SPFA+前向星)
- ubuntu 14.04安装libpcap
- ios--多线程复习笔记
- 谋哥:这个时代没有比程序员更适合创业
- MySQL索引背后的数据结构及算法原理
- poj--1611
- 选择排序的时间复杂度分析
- 2014-08-13 日志
- HighCharts操作案例-折线图
- 宏 _INTSIZEOF 的意思
- C++沉思录(一)