1.当线程数⼩于核⼼线程数时,创建线程。 2.当线程数⼤于等于核⼼线程数,且任务队列未满时,将任务放⼊任务队列。 3.当线程数⼤于等于核⼼线程数,且任务队列已满 3.1若线程数⼩于最⼤线程数,创建线程 3.2若线程数等于最⼤线程数,抛出异常,拒绝任务 三:线程池参数的合理设置 为了说明合理设...
1、假如,线程数小于corePoolSize,那么就直接添加新的线程。 2、假如,线程数大于等于corePoolSize,那么就放进队列进行等待,假如,放进队列成功了,那么就不添加新的线程。 3、假如对列满了,线程数小于maxPoolSize,那么就会新建线程,假如,大于maxpoolSize,那么就会走到拒绝策略。 所以,队列设置较大,一般来说是不会满...
当线程池被调用shutdown()后,会等待线程池里的任务执行完毕再shutdown。如果在调用shutdown()和线程池真正shutdown之间提交任务,会拒绝新任务。 线程池会调用rejectedExecutionHandler来处理这个任务。如果没有设置默认是AbortPolicy,会抛出异常。 ThreadPoolExecutor 采用了策略的设计模式来处理拒绝任务的几种场景。 这几...
将核心线程和最大线程设置成一个值,都为100就可以了。