系统提供的线程池有4种,jdk1.8之后又增加的一种
1.定长线程池:Executors.newFixedThreadPool(int);
创建固定大小线程池 , 可设置并发数 , 如果并发数已满 , 后续任务会 在 等待队列 中等待可用线程
2.单核心线程池:Executors.newSingleThreadExecutor();
3.无界(无限自动增长)Executors.newCachedThreadPool();
4.按计划(可延时执行)Executors.newScheduledThreadPool(int);
5.抢占式、定长、并发线程池(无序,线程随机执行)Executors.newWorkStealingPool(int);
前四种线程池最终全都是调用这个方法
ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue)
/* 序号 名称 类型 含义
1 corePoolSize int 核心线程池大小
2 maximumPoolSize int 最大线程池大小
3 keepAliveTime long 线程最大空闲时间
4 unit TimeUnit 时间单位
5 workQueue BlockingQueue<Runnable> 线程等待队列
6 threadFactory ThreadFactory 线程创建工厂
7 handler RejectedExecutionHandler 拒绝策略*/
第五种线程池调用的是
ForkJoinPool(int parallelism,
ForkJoinWorkerThreadFactory factory,
UncaughtExceptionHandler handler,
boolean asyncMode)
本文详细介绍了Java中五种线程池的使用,包括固定线程池、单线程池、无界线程池、定时线程池以及工作窃取线程池。每种线程池的核心参数如核心线程数、最大线程数、线程存活时间和等待队列等进行了深入解析,帮助理解线程池的工作原理和配置策略。
170万+

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



