您的位置:首页 > 新闻 > 会展 > JAVA中的线程池说明二

JAVA中的线程池说明二

2025/1/5 21:17:35 来源:https://blog.csdn.net/m0_62055442/article/details/141610690  浏览:    关键词:JAVA中的线程池说明二

系列文章

JAVA中的线程池说明一

JAVA中的线程池说明二

目录

1.引入

2.参数解释 

3.标准库中提供的四个拒绝策略


1.引入

  • java.util.concurrent 这个包里面放的很多类都是和并发编程(多线程编程)密切相关,这个包简称JUC;
  • 今天我们主要来了解Java线程池的相关知识。

2.参数解释 

  在这里,我们主要讲述第四个构造方法,其他方法与其类似,不再赘述。

参数解释
int corePoolSize核心线程数
int maximumPoolSize最大线程数
long keepAliveTime描述了临时工可以摸鱼的最大时间

TimeUnit unit

时间单位(ms,s,min)
BlockingQueue<Runnable> workQueue ​线程池任务队列
ThreadFactory threadFactory ​用于创建线程,线程池是需要创建线程的
RejectedExecutionHandler handler ​描述了线程池的"拒绝策略",即如果线程池任务队列已满,该如何处理

ThreadPoolExecutor 相当于将线程分为两类:

1. 一类是正式员工(核心线程)
2. 一类是临时工/实习生(非核心线程)

这两者之和等于最大线程数。

       它允许正式员工在空闲时休息,但不允许临时工/实习生在空闲时休息太久,如果临时工/实习生长时间没有任务可做,它们将被销毁。整体策略是保证核心线程的稳定运行,同时根据需要动态调整非核心线程的数量。

3.标准库中提供的四个拒绝策略

 详情

名称解释
ThreadPoolExecutor.AbortPolicy如果任务较多,队列已满,抛出异常
ThreadPoolExecutor.CallerRunsPolicy如果任务较多,队列已满,多出的任务,哪个线程添加,哪个线程处理
ThreadPoolExecutor.DiscardOldestPolicy如果任务较多,队列已满,丢弃最早的任务
ThreadPoolExecutor.DiscardPolicy如果任务较多,队列已满,丢弃最新任务

以上就是Java多线程的补充说明。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com