场景
| 场景 |
方法 |
| 任务少, 不频繁 |
直接使用线程 |
| 任务数稳定,频繁 |
使用线程池 |
线程池
优点
- 不用频繁的创建和销毁线程
- 不需要担心OOM
- 直接往任务队列添加任务即可
- 核心线程忙不过来,可以自动增加到最大线程数
构造参数
- 核心线程数
- 最大线程数
- 空闲活跃时长
- 时长单位
- 阻塞队列
- 线程工厂
- 拒绝策略
-
- 直接丢弃
- 替换最后一个
- 抛异常
- 谁提交的任务谁执行
- --- 自行 扩展
工具类
Executors
| 方法 |
描述 |
| newSingleThreadExecutor |
创建一个单线程的线程池 |
| newCachedThreadPool |
创建一个无上限的线程池(Integer.MAX) |
| newFixedThreadPool |
创建一个固定线程数的线程池 |
需求
小白和他的朋友门,连续输了10几把游戏, 决定去餐厅吃饭了,3个人,直接点了10盘菜,决定化悲愤为食量

本文探讨了使用CompletableFuture进行异步编程时的线程池优化。通过实例展示了线程池的优点、构造参数、工具类以及不同场景下的任务调度和性能提升。文章详细分析了如何通过自定义线程池解决性能问题,避免对ForkJoinPool的干扰,并给出了最佳实践。
最低0.47元/天 解锁文章

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



