线程池拒绝策略中AbortPolicy疑问?

AbortPolicy,当请求线程数超出最大线程数,就会抛出RejectExecutionException。我想请问,多线程环境下,这种情况不是很多的吗,毕竟你没法提前知道到底需要多少线程。如果每次都抛异常程序还怎么正常运行呢?

你可以自定义拒绝策略,一般都会设置一个队列,当线程池满的时候可以将任务放入队列中.

线程池虽然是个池子,但也不代表它可以无限容纳的,也需要对线程数量进行控制的,一般来说,我们定义线程数量都是以CPU核心数+1的。所以,当请求线程数超过我们所定义的线程总数,我们只能让其等待。
另外,如果线程内抛出异常了,那么我们应该停止所有线程才对。所以我们应该对所有线程都进行AbortPolicy,做法就是在线程池定义之前,我们做一个信号器,当某一个线程报错以后,其他线程都能收到信号,并全部AbortPolicy