Melody Player

线上真实案例,多次调用线程池 ThreadPoolExecutor 的 invokeAll() 方法进行数据统计时任务被拒绝,故事从此开始。

本文重在讲述问题的产生、抽象、寻找解决方法的过程,并结合源码对原因进行抽丝剥茧般的分析。bug 千千万万,唯有合理的逻辑推理思维才能让这些 bug 显露原形。