報錯日志
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 ,萬一內存爆了
?