上一篇博客我记录了我使用使用CompletableFuture异步编程,中间使用了newFixedThreadPool来创建线程池。总所周知,Executor工厂方法可以创建四种线程池,而提到newFixedThreadPool,很多博客中都是这么描述他的
这样的博客还有很多我就不一一列举了,以至于我之前整理的线程池的博客中也是这么说的。刚刚在机缘巧合下,我发现这么说是不对的,不是等待而是拒绝,大家都说错了。(有点懒,所以也懒得改我之前的博客了,大家凑合看就完事了)
Ctrl+左键点进去
再Ctrl+左键
这里可以看到它的拒绝策略,我们点进去
AbortPolicy是我们的默认的拒绝策略,会直接丢弃任务,然后抛出RejectedExecutionException异常
所以说,newFixedThreadPool对于超出的线程其实是会拒绝而不是等待的