对于使用
newFixedThreadPool(3);
来创建线程池时,底层创建线程池的方式为:
代表线程池的类为ThreadPoolExecutor。
1、第一个参数为corePoolSize:假设为3,当任务提交过来时,如果线程池中的线程数小于corePoolSize,则会创建新的线程执行该任务;当线程池中的线程数达到3个后,新提交的任务会进入queue队列等待。
2、第二个参数为maximumPoolSize:假设queue队列中只能存放200个任务,当队列被装满时,新来的任务放不进去,则可以创建额外的线程去处理后续提交的任务;maximumPoolSize代表可以创建的额外线程数量。
3、第三个参数为keepAliveTime:当任务都执行完之后,创建出的额外线程的空闲时间,在空闲时间后额外线程会被销毁。
4、第四个参数为queue:用来定义等待任务队列的属性。