多线程
1.线程:一个进程中至少要有一个线程
2.进程: 进程之间是相互独立的
3.多进程: 一个进程中可以开启多个线程同时执行不同的任务
多线程的执行原理
-
cpu 在多个线程之间快速的来回切换(调度线程执行任务),并不是真正的同时执行,是个假象
多线程的优缺点 -
优点: 可以适当的提高程序的执行效率
-
缺点: 当子线程非常多的时候
-
大量的消耗CPU的资源,降低的程序的执行的性能。
-
时间的开销:创建线程需要时间
-
控件上的开销:子线程是要占用内存空间的
主线程
1.程序一启动的就会创建一个线程,称之为主线程/UI线程。
2.注意:千万不要放耗时操作放在主线程中
实现多线程的技术方案
开通线程的四种方式
- pThread
- NSThread
- GCD
- NSOperation
- NSThread创建线程的三种方式
1.1.对象方法创建(构造方法)
2.2.类方法 无法获取到线程对象 不用手动开启
3.3.perform 方法 NSObject分类方法
4.1. detach :分离 一个新的线程。
- 线程状态
线程的生命周期
- 新建状态 new
- 就绪状态 runnable
- 运行 running
- 阻塞 blocked
- 死亡
- dead
- 自然死亡
- 强制退出
strong : 强引用 对象一旦被强引用就不会被销毁
根视图用strong偶尔父视图OC 对象用strong
weak : 弱引用,对象一旦被弱引用创建就销毁
子视图用weak
代理使用weak
对象创建穿了已经有强引用了,那么保存的时候使用weak
网友评论