ThreadPoolExecutor提供了四个构造方法:
这里我们用参数最多的方法进行讲解:
1、corePoolSize(线程池的基本大小):当提交一个任务到线程池时,线程池会创建一个线程来执行任务,即使其他空闲的基本线程能够执行新任务也会创建线程,等到需要执行的任务数大于线程池基本大小时就不再创建。如果调用了线程池的prestartAllCoreThreads()方法,线程池会提前创建并启动所有基本线程。
2、maximumPoolSize(线程池最大数量):线程池允许创建最大线程数。如果队列满了,并且已创建的线程数小于最大线程数,线程池会再创建新的线程执行任务。如果使用了无界的任务队列这个参数并没有效果。
3、keepAliveTime(线程活动保持时间):线程池的工作线程空闲后,保持存活的时间。如果任务很多,并且每个任务执行的时间比较短,可以调大时间,