多线程知识点总结
1. 概念:
2. 实现方案:
- NSThread
- 创建线程
- 状态
- 新建-->>就绪-->>运行-->>阻塞-->>死亡
- 线程安全(互斥锁-线程同步)
- 通信
- GCD
- 概念:
- 队列(串行2+并发2) + 任务(异步函数+同步函数)
- 各种队列和各种任务执行方式的组合情况(4+2)
- 开线程:
- 常用函数:
- 一次性代码(单例模式)
- 栅栏函数(控制并发队列中任务的执行顺序)
- 延迟执行
- 队列组
- 快速迭代(apply)
- NSOperation
- 概念:
- 队列+ 操作
- 封装操作(3)
- 开线程:队列(非主队列) + 操作
- 1)封装操作
- 2)创建非主队列
- 3)添加操作到队列中
- 常用操作:
- 属性:
- 最大并发数 (当为 1 时, 相对于串行队列)
- 线程间通信(提交任务到主队列主队列)
- 单例模式
- 1)只分配一次存储空间(once)
- 2)提供类方法
- 多图下载示例
- 二级缓存结构
- SDWebImage框架内部实现原理
- Runloop
- 概念
- 作用
- 线程和runloop
- 获得对象
- runloop相关类(mode runloop source timer observer)
- runloop内部的处理逻辑
- runloop的应用(常驻线程)