# Summary # Cues # Notes - 拒绝策略使用CallerRunsPolicy:当线程池“**满线程 + 队列满**”产生拒绝时,**不丢弃任务**,而是让**调用线程**同步执行这个任务 - CallerRunsPolicy也算一种**自动背压**:当所有 `maximumPoolSize` 个线程都在忙于调用第三方接口时,新的任务提交会立即触发 `CallerRunsPolicy`。此时,提交任务的业务线程会被迫亲自执行这个接口调用。因为它在同步执行,所以它无法再去提交更多的任务,从而自然地降低了任务提交的速率。 - 由于CallerRunsPolicy用主线程执行,**因此主线程执行完之前这段时间会有一段空窗期,即使线程池有空闲线程了,也需要等主线程空闲后才能提交任务**。