常见的线程池有哪些?线程池的参数;
时间: 2023-11-14 10:59:52 浏览: 101
常见的线程池有以下几种:
1. FixedThreadPool(固定大小线程池):线程池中的线程数量固定,任务提交后会立即执行。
2. CachedThreadPool(缓存线程池):线程池中的线程数量不固定,如果有空闲线程则会重用,否则会新建线程。适用于执行大量短期的异步任务。
3. ScheduledThreadPool(定时任务线程池):适用于需要定期执行任务的场景,可以设定每个任务的执行时间。
4. SingleThreadPool(单线程线程池):只有一个工作线程的线程池,适用于需要保证任务顺序执行的场景。
线程池一般具有以下参数:
1. corePoolSize(核心线程数):线程池中保持活动状态的最小线程数。
2. maximumPoolSize(最大线程数):线程池中允许存在的最大线程数。
3. keepAliveTime(线程空闲时间):当线程池中的线程数量超过核心线程数时,多余的空闲线程在被终止之前等待新任务的最长时间。
4. unit(时间单位):keepAliveTime 的时间单位。
5. workQueue(任务队列):用于保存等待执行的任务的阻塞队列。
6. threadFactory(线程工厂):用于创建新线程的工厂。
7. handler(饱和策略):当线程池和任务队列都满了,无法处理新任务时的处理策略。
相关问题
解释一下Java自带的线程池有哪些?他们底层的参数都是什么
Java自带的线程池有三种:FixedThreadPool、CachedThreadPool和ScheduledThreadPool。
FixedThreadPool是一个固定大小的线程池,它的核心线程数和最大线程数都是固定的,不会根据任务的数量进行调整。
CachedThreadPool是一个可缓存的线程池,它的核心线程数为0,最大线程数为Integer.MAX_VALUE,当有新任务到来时,如果线程池中有空闲线程,则会立即使用空闲线程执行任务,如果没有,则会创建新的线程。
ScheduledThreadPool是一个定时任务线程池,它可以定时执行任务,也可以延迟执行任务。
这些线程池的底层参数包括核心线程数、最大线程数、线程存活时间、任务队列等。
线程池哪些参数?怎么优化?
线程池的一些常用参数包括:核心线程数、最大线程数、队列容量、线程存活时间等。优化的方法包括:选择合适的线程池参数、合理地使用线程池、避免使用无限制的队列容量等。具体的优化方法需要根据具体的业务场景来确定。
阅读全文