1. 线程
定义:一个基本的CPU执行单元&程序执行的最小单元。作用:减少程序在并发执行时所付出的时空开销,提高操作系统的并发性能。生命周期:新建、就绪、运行、阻塞、死亡。
2. 进程
定义: 进程实体的运行过程 & 系统进行资源分配和调度的一个独立单位作用:使多个程序可并发执行,以提高系统的资源利用率和吞吐量
3. 线程 & 进程的区别
4. 线程分类
线程分类:守护线程和非守护线程(用户线程)。
守护线程
定义:守护用户线程的线程,即在程序运行时为其他线程提供一种通用服务常见: 垃圾回收线程
非守护线程
主线程
定义:Android 系统在程序启动时会自动启动一条主线程作用:UI、界面交互相关 子线程定义:手动创建的线程作用:耗时的操作(网络请求、I/O操作等)
5. 线程优先级
线程优先级分为 10 个级别,分别用 Thread 类常量表示。
Thread
.MIN_PRIORITY
Thread
.MAX_PRIORITY
6. 多线程
定义:多个线程同时进行,即多个任务同时进行(1个主线程 + n 个工作线程)原则
不要阻塞UI线程(即主线程):单线程会导致主线程阻塞,然后出现ANR错误:主线程被阻塞超过 5s 则会出现错误不要在UI线程之外更新UI组件
7. 线程调度
调度方式
当系统存在大量线程时,系统会通过时间片轮转的方式调度线程,因此线程不可能做到绝对的并发处于就绪状态(Runnable)的线程都会进入到线程队列中等待CPU资源在采用时间片的系统中,每个线程都有机会获得 CPU 的资源以便进行自身的线程操作;当线程使用 CPU 资源的时间到后,即时线程没有完成自己的全部操作,JVM 也会中断当前线程的执行,把 CPU 资源的使用权切换给下一个队列中等待的线程
8. 线程同步
定义:当线程 A 使用同步方法 A 时,其他线程必须等到线程 A 使用完同步方法 A 后才能使用同步方法用关键字 synchronized 进行修饰
9. 线程联合
定义:线程 A 在占有 CPU 资源期间,通过调用 join() 方法中断自身线程执行,然后运行联合它的线程 B,直到线程 B 执行完毕后线程 A 再重新排队等待 CPU 资源,这个过程称为线程A联合线程B
转载请注明原文地址: https://ju.6miu.com/read-963383.html