使用线程池创建线程的好处

阿里巴巴Java规约推荐使用线程池来创建线程而不是显式的创建线程,使用线程池来创建线程有如下好处

Android中的线程池的概念来源于Java中的Executor,Executor是一个接口,真正的线程池的实现为ThreadPoolExecutor.

ThreadPoolExecutor提供了一系列参数来配置线程池,通过不同的参数可以创建不同的线程池,从线程池的功能特性上来说,Android的线程池主要分为4类,这4类线程池可以通过Executors所提供的工厂方法来得到

Android中的线程池都是直接或者间接通过配置ThreadPoolExecutor来实现的

ThreadPoolExecutor

public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              ThreadFactory threadFactory)

各个参数代表的含义

线程池的分类

通过Executors的newFixedThreadPool方法来创建.它是一种线程数量固定的线程池,当线程处于空闲状态时,它们并不会被回收,除非线程池被关闭了.当所有的线程都处于活动状态时,新任务都会处于等待状态,直到有线程空闲出来.由于FixedThreadPool只有核心线程并且这些核心线程不会被回收,这意味着它能够更加快速地响应外界的请求

但是…

阿里巴巴不推荐使用Executors创建线程

插图

而是使用原始的ThreadPoolExecutor,这样会让人了解线程的规则.所以关于ThreadPoolExecutor的介绍就很重要了

🌹💗正文结束💗🌹