如何从Executor核心理解线程池,12分钟内彻底搞懂?
- 内容介绍
- 文章标签
- 相关推荐
如何从Executor核心理解线程池,12分钟内彻底搞懂?
在ThreadPoolExecutor的基础上, 还有个做定时的线程池ScheduledThreadPoolExecutor,说白了就是...
ThreadPoolExecutor主要有七个重要的参数

本篇文章笔记以及案例被收入 gitee-StudyJava、 github-StudyJava 感兴趣的同学可以stat下持续关注喔~
线程池的优势
先说说我们要明白创建线程是有开销的,程序计数器、 功力不足。 虚拟机栈、本地方法栈都是线程私有的空间
如果已达到最大线程数量则使用拒绝策略
| 拒绝策略 | 作用 |
|---|---|
| AbortPolicy | 抛出异常 |
| DiscardPolicy | 不处理,丢弃 |
| DiscardOldestPolicy | 丢弃队列中最近一个任务,并马上施行当前任务 |
| CallerRunsPolicy | 调用线程来施行任务 |
通常使用shutdown,如果任务不一定要施行完可以使用shutdownNow,试试水。
线程池的实现原理
踩雷了。 public void execute { ... }
内卷。 如果阻塞队列已满,还未达到最大线程数量则创建非核心线程施行任务
物超所值。
如何从Executor核心理解线程池,12分钟内彻底搞懂?
在ThreadPoolExecutor的基础上, 还有个做定时的线程池ScheduledThreadPoolExecutor,说白了就是...
ThreadPoolExecutor主要有七个重要的参数

本篇文章笔记以及案例被收入 gitee-StudyJava、 github-StudyJava 感兴趣的同学可以stat下持续关注喔~
线程池的优势
先说说我们要明白创建线程是有开销的,程序计数器、 功力不足。 虚拟机栈、本地方法栈都是线程私有的空间
如果已达到最大线程数量则使用拒绝策略
| 拒绝策略 | 作用 |
|---|---|
| AbortPolicy | 抛出异常 |
| DiscardPolicy | 不处理,丢弃 |
| DiscardOldestPolicy | 丢弃队列中最近一个任务,并马上施行当前任务 |
| CallerRunsPolicy | 调用线程来施行任务 |
通常使用shutdown,如果任务不一定要施行完可以使用shutdownNow,试试水。
线程池的实现原理
踩雷了。 public void execute { ... }
内卷。 如果阻塞队列已满,还未达到最大线程数量则创建非核心线程施行任务
物超所值。

