-
Java 线程池实战:别用 Executors,七个参数与拒绝策略怎么配
一次大促压测,服务在流量爬到峰值前先 OOM 倒下,dump 一拉堆里塞满几十万个待处理任务,全卡在一个 Executors.newFixedThreadPool(50) 背后的无界队列里。那次之后我把 ThreadPoolExecutor 的七个参数当成七个必须亲手做的决策来理解:为什么禁用 Executors 工厂方法、队列为什么必须有界、核心线程数按 CPU 密集还是 IO 密集怎么算、四种…- 0
- 0
-
Java 线程池配置完全指南:从一次"线程池把服务拖到 OOM"看懂为什么不能用 Executors
2023 年我给一个订单服务加异步处理下单成功后要发通知写审计流水更新统计报表这些事都不该卡住下单这条主流程我决定把它们丢给一个线程池在后台异步做第一版我做得很顺手一行 Executors.newFixedThreadPool 拿到一个 10 线程的池子业务里需要异步的地方任务 submit 进去就不管了本地我测了测任务都正常执行完了我心里很笃定线程池嘛就是设一个线程数我把任务交给它它就用那几个线…- 3
- 0
-
Java 线程池完全指南:从一次线上 OOM 看懂七个核心参数怎么配
2022 年我维护一个电商订单处理服务,某次大促流量上来十几分钟服务就 OOM 崩了,重启又崩。导出 heap dump 一看堆里躺着几十万个待执行任务对象全堆在同一个队列里,顺着追到一行没多想的代码 Executors.newFixedThreadPool(20)——它背后是一个没有容量上限的队列,20 个线程处理不过来潮水般的订单任务被这个无底洞照单全收直到把堆内存塞爆。那一刻才意识到我从来没…- 4
- 0
-
Executors 埋的雷:一次线程池配置踩坑的复盘
几个用户同时导出大报表,报表服务就 OOM 挂掉了。根子是代码里用 Executors 随手创建的线程池:newFixedThreadPool 的无界队列撑爆内存、newCachedThreadPool 的无界线程数压力下爆炸。几天梳理线程池:七个参数、有界队列、拒绝策略、线程数估算、业务隔离、异常处理、优雅关闭、监控。- 0
- 0
ThreadPoolExecutor
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!




