这三个API的底层其实都是由同一个类实现的:ThreadPoolExecutor 类
public static ExecutorService newCachedThreadPool() {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
60L, TimeUnit.SECONDS,
new SynchronousQueue());
}
public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue());
}
public static ExecutorService newSingleThreadExecutor() {
return new FinalizableDelegatedExecutorService
(new ThreadPoolExecutor(1, 1,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue()));
}
ThreadPoolExecutor 类
七大参数
ThreadPoolExecutor类主要有以下七个参数:
int corePoolSize: 核心线程池大小
int maximumPoolSize: 最大核心线程池大小
long keepAliveTime: 线程空闲后的存活时间
TimeUnit unit: 超时单位
BlockingQueue workQueue: 阻塞队列
ThreadFactory threadFactory: 线程工厂:创建线程的,一般默认
RejectedExecutionHandler handle: 拒绝策略
四种拒绝策略
拒绝策略就是当队列满时,线程如何去处理新来的任务。
Java内置了四种拒绝策略:
ThreadPoolExecutor.CallerRunsPolicy()
ThreadPoolExecutor.AbortPolicy()
ThreadPoolExecutor.DiscardPolicy()
ThreadPoolExecutor.DiscardOldestPolicy()
USB Microphone https://www.soft-voice.com/
Wooden Speakers https://www.zeshuiplatform.com/
亚马逊测评 www.yisuping.cn
深圳网站建设www.sz886.com
本文深入探讨了Java中ThreadPoolExecutor类的使用,包括其核心参数如核心线程池大小、最大线程池大小、线程空闲存活时间和阻塞队列的选择。同时,介绍了四种内置的拒绝策略:CallerRunsPolicy、AbortPolicy、DiscardPolicy和DiscardOldestPolicy,以及它们在任务过多时如何处理新请求。通过实例展示了newCachedThreadPool、newFixedThreadPool和newSingleThreadExecutor的配置方式。
719

被折叠的 条评论
为什么被折叠?



