Android 开发之线程相关知识点

    xiaoxiao2021-12-14  25

    1. 线程

    定义:一个基本的CPU执行单元&程序执行的最小单元。作用:减少程序在并发执行时所付出的时空开销,提高操作系统的并发性能。生命周期:新建、就绪、运行、阻塞、死亡。

    2. 进程

    定义: 进程实体的运行过程 & 系统进行资源分配和调度的一个独立单位作用:使多个程序可并发执行,以提高系统的资源利用率和吞吐量

    3. 线程 & 进程的区别

    4. 线程分类

    线程分类:守护线程和非守护线程(用户线程)。

    守护线程

    定义:守护用户线程的线程,即在程序运行时为其他线程提供一种通用服务常见: 垃圾回收线程

    非守护线程

    主线程

    定义:Android 系统在程序启动时会自动启动一条主线程作用:UI、界面交互相关 子线程定义:手动创建的线程作用:耗时的操作(网络请求、I/O操作等)

    5. 线程优先级

    线程优先级分为 10 个级别,分别用 Thread 类常量表示。

    // 譬如: Thread.MIN_PRIORITY // 优先级1 Thread.MAX_PRIORITY // 优先级10

    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

    最新回复(0)