1、线程介绍
- 定义:CPU 执行的最小单元。
- 作用:并发操作提高系统并发性能。
- 状态:就绪、阻塞、运行 3种状态。
2、线程分类
- 守护线程
1、定义:守护用户线程的线程,为其它线程提供服务。
2、如:垃圾回收线程。设置方式:thread.setDaemon(true)。 - 非守护线程 (用户线程):
1、分类:主线程(UI线程)、子线程(工作线程)。
2、主线程:Android系统在Android 程序启动时自动启动一条主线程。处理四大组件与用户交互的事件(UI/界面交互)。不允许进行耗时操作,否则会出现 ANR。
3、子线程:手动创建的线程。执行耗时的操作(网络请求、I/O操作)。 - 守护线程 与 非守护线程区别
1、所有用户线程结束,守护线程也会结束,虚拟机退出。
2、有用户线程运行,守护线程也会运行,虚拟机不会退出。
3、线程优先级
- 线程优先级共 10 个级别。为 1-10 (Thread.MIN_PRIORITY-Thread.MAX_PRIORITY),默认为 5 (Thread.NORM_PRIORITY)。
- 设置方式:thread.setPriority(int grade)。
4、线程调度
- 调度方式:系统通过时间片轮转方式调度线程,就绪状态线程会进入线程队列等待CPU资源。
- 调度优先级:根据线程优先级(高(获得CPU资源概率大)->低(获得CPU资源概率小))将CPU资源分配给线程;相同级别线程轮流获取CPU资源。
5、线程同步
- 定义:其它线程必须等待另一线程执行完才能使用。
- 方式: Synchronized、锁。
6、线程联合
1.定义:线程A占有CPU资源期间,通过线程B.join()中断自身线程,然后执行联合线程B,直到线程B执行完成线程A再重新排队等待CPU资源,这个过程称做线程A联合线程B。
7、多线程介绍
- 定义:多个线程同时进行。
- 作用:主线程更新UI组建,子线程执行耗时操作。
- Android 多线程实现方式
8、进程介绍
- 定义:系统进行资源分配和调度的一个独立单元。
- 作用:多个程序并发执行,提高系统资源的利用率和吞吐量。
- 进程状态:就绪状态、运行状态、阻塞状态、创建状态、结束状态。
9、线程与进程区别
- 一个进程可以拥有多个线程。一个线程只能属于某个进程。
- 区别
类型 | 定义 | 作用 | 资源 | 通信 |
---|---|---|---|---|
进程 | 系统资源分配最小单元 | 多进程提高系统资源利用率和吞吐量 | 拥有独立资源 | 多进程通信复杂 |
线程 | CPU执行的最小单元 | 多线程提高系统并发性能 | 共享进程资源 | 多线程通信简单 |