美文网首页
Android之Executor线程池介绍

Android之Executor线程池介绍

作者: Lee_5566 | 来源:发表于2021-01-18 14:12 被阅读0次
image.png

Executor

Executor是Java中的概念,是一个接口,真正的线程池实现是ThreadPoolExecutor。

它提供了一系列的参数来配置不同的线程池。

ThreadPoolExecutor

ThreadPoolExecutor是线程池的真正实现,他的构造方法提供了一系列参数来配置线程池,

public ThreadPoolExecutor(
            int corePoolSize,//核心线程数
            int maximumPoolSize,//最大线程数
            long keepAliveTime, //非核心线程的超时时间
            TimeUnit unit,//单位
            BlockingQueue<Runnable> workQueue,//任务队列 
            ThreadFactory threadFactory//线程工厂
            )

除了这些参数外还有个很不常用的参数RejectedExecutionHandler handler。

当线程池无法执行新任务时(任务队列满了或者无法成功执行)会调用handler的rejectExecutionException。

线程池的类别

在Executors里面对应的线程池有一下几种实现:

cached ThreadPool

缓存线程池的特点是它会缓存之前的线程,新提交的任务可以运行在缓存的线程中,即实现了前文所述的第一个优势。

fixed ThreadPool

cachedThreadPool的一个特点是——新提交的任务没有空闲线程可以执行了,就会创建一个新的线程。而fixedThreadPool不会这样,它会将任务保存起来,等到有空闲线程再执行。即实现了前文所述的第二个优势。

scheduled ThreadPool

scheduled ThreadPool的特点是可以实现任务的调度,比如任务的延迟执行和周期执行。

代码实例

ThreadPoolExecutor executor1 = (ThreadPoolExecutor)Executors.newCachedThreadPool();
ThreadPoolExecutor executor2 = (ThreadPoolExecutor)Executors.newFixedThreadPool(4);

相关文章

网友评论

      本文标题:Android之Executor线程池介绍

      本文链接:https://www.haomeiwen.com/subject/nbqxzktx.html