Skip to content
阅读进度

CPU 和 IO 线程池如何配置 拒绝策略如何选择? ​

返回 Java 与并发 目录

标准回答 ​

CPU 密集任务的并行度通常从可用核心数附近开始测量,避免过多线程争抢;IO 密集任务可适度增加并发,但要结合设备、下游能力和内存限制,并使用有界队列。拒绝策略取决于业务:必须保留的任务要显式失败或进入可靠队列;可丢的预加载或过期刷新可以采用受控丢弃;CallerRuns 会让提交线程执行,能形成背压,但如果提交者是 UI 或 Binder 线程就可能造成卡顿。AbortPolicy 会抛出 RejectedExecutionException,需要调用方处理。

延伸追问 ​

读取文件也会占磁盘、内存和线程,并不是纯读取就可以无限并发;DiscardOldestPolicy 也不保证丢掉的任务在业务上最不重要。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。