报错日志
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@12e2cb93 rejected from java.util.concurrent.ThreadPoolExecutor@6ecd396b[Running, pool size = 10, active threads = 10, queued tasks = 200, completed tasks = 0]
原因:
第一:
你的线程池ThreadPoolExecutor 显示的shutdown()之后,再向线程池提交任务的时候。 如果你配置的拒绝策略是AbortPolicy的话,这个异常就会抛出来。
第二:
当你设置的任务缓存队列过小的时候,或者说, 你的线程池里面所有的线程都在干活(线程数== maxPoolSize),并且你的任务缓存队列也已经充满了等待的队列, 这个时候,你再向它提交任务,则会抛出这个异常。
我的是第二种,因为测试给了10万笔数据,设置了最大的缓存队列是200,最大线程是5个,所以报错了。
注意:不要设置线程最大数为 Integer.MAX_VALUE ,万一内存爆了