进程
- 进程是在系统中正在运行的一个应用程序
- 每个进程之间是独立的,每个进程皆运行在其专用且受保护的内存空间内
- 一个应用程序可能对应多个进程。
线程
- 一个进程如果想要执行任务,必须得有一个线程(一个进程至少得有一条线程)
- 一个进程的所有任务都在线程中执行
线程的串行
- 如果要在一个线程中执行多个任务,那么只能一个一个的按顺序执行任务,同一时间内一个线程只能执行一个任务。
多线程
- 一个进程中可以开启多条线程,每条线程可以(同时)执行不同的任务
- 原理:同意时间CPU只能处理1条线程,只有一条线程在工作,多线程并发执行时,其实是在CPU之间切换。
- 注意:如果线程太多,CPU在多条线程之间切换,会消耗大量的CPU资源(通常3~5条线程就可以了)。
- 优点:能适当提高程序的执行效率,提高资源的利用率。
- 缺点:线程越多,会降低程序的性能
多线程的应用
什么是主线程
- 一个iOS程序运行之后,会默认开启一条线程,称为主线程(UI线程)
- 作用:
- 显示/刷新UI界面
- 处理UI事件(比如点击事件,拖拽滚动...)
- 注意:
- 耗时操作不应该放在主线程,因为耗时操作会卡住主线程会影响UI流畅度,会有一种卡顿的感觉(应该将耗时操作放到子线程「后台线程、非主线程」当中)。