- 多线程我们这样看--> 多 - 线程
理解线程之前我们要先理解进程
进程:
1、在系统中正在运行的一个应用程序
2、每个进程之间是独立的,有其受保护的内存空间
比如同时打开迅雷和Xcode

线程
1、一个进程想要执行任务,必须得有线程(一个进程至少得有一条线程)
2、一个进程的所有任务都是在线程中执行

如果要在线程中执行多个任务,那么只能一个一个按顺序执行,也就是说同一时间一个线程只能执行一个任务
线程的串行
1、一个线程中任务的执行时串行的
也可以认为线程是进程的一条执行路径

多线程
一个进程中可以开启多个线程,每个线程可以并行(同时)执行不同任务,这是一个假象。
多线程的原理
同一时间,CPU只能处理一条线程,只有一条线程在工作
多条线程同时执行,其实是CPU快速调度(切换)多条线程
如果CPU调度的时间非常快,那么就造成了多条线程并发执行的假象

多线程总结
- 优点:
- 能适当提高程序的执行效率
- 能适当提高资源的利用率
- 缺点
- 创建线程是有开销的,iOS下主要成本包括内核数据结构,栈空间,主线程
- 如果大量开启线程,会降低程序的性能
- 线程越多,CPU在调度线程上的开销就越大
- 程序设计更加复杂,比如线程之间的通信,多线程的数据共享
网友评论