线程的状态以及转换
image
线程池
image
常用的线程池
- newCachedThreadPool:核心线程数为0,非核心线程超时时间60s.适用于任务较多并且耗时较短的任务
- newFixedThreadPool:核心线程数与最大线程数一致,所以只会创建核心线程。适合对个长时间的任务,占用资源大,线程池不会回收
- newSingleThreadExecutor:与newFixedThreadPool一致,只不过核心线程数为1。适用于先进先出的任务队列。
- newScheduledThreadPool:创建一个定长的线程池,支持定时以及周期性任务执行
AsyncTask的原理
image
AsyncTask底层就是2个线程池+Handle,默认的阻塞队列为LinkedBolckingQueue