Android开发经验谈Android技术知识Android开发

Android 面试系统复习系列(四)线程 / 线程池 / 多线

2019-05-28  本文已影响13人  老王头碎碎念

Android 面试系统复习系列(四)线程 / 线程池 / 多线程

线程

线程的状态

线程池

为什么要使用线程池

在任务众多的情况下,系统要为每一个任务创建一个线程,而任务执行完毕后会销毁每一个线程,所以会造成线程频繁地创建与销毁。

而线程池对线程进行复用,线程在执行完任务后不会立刻销毁,而会等待另外的任务,这样就不会频繁地创建、销毁线程和调用GC。

ThreadPoolExecutor 构造方法中的参数

几种常见的线程池

多线程同步相关

volatile 关键字

Java 提供的最轻量级的同步机制

当用 volatile 定义一个变量时,变量将具备两种特性:

需要注意的是,volatile 提供的可见性并不会保证基于 volatile 变量的运算是线程安全的。这里提供的可见性是指在拿到这个变量的值的时候是最新的,因为每次读值的时候都会强制从主内存刷新值,但是再后续的运算中可能就是过期的值了。

synchronized

同步代码块,使用时注意下对象锁和类锁的区别

精心挑选的面试题

1、什么是死锁,如何分析,如何避免

2、ThreadPoolExecutor 构造函数中各参数含义,以及 android 中常见线程池的应用场景

3、Thread.sleep() 和 Object.wait() 方法的区别

上一篇下一篇

猜你喜欢

热点阅读