一、什么是Java线程池
可理解为持有N条线程的容器。该容器包含新建,供给,销毁线程的能力。
二、使用线程池的优势
1、降低资源消耗。(线程的创建,销毁)
2、提高响应速度。(任务无需等待线程的创建)
3、提高线程的可管理性。(线程池可对线程进行统一的分配、调优和监控)
三、线程池的工作流程
1、创建一个线程池< ThreadPoolTaskExecutor() >
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(30);
executor.setMaxPoolSize(200);
executor.setQueueCapacity(20);
executor.setThreadNamePrefix("defaultExecutor-");
executor.initialize();
a、corePoolSize (线程池基本大小)表示线程池持有线程的最小数量,当任务提交至线程池且线程池持有线程数量数量未到达corePoolSize,即使空闲线程可以执行当前任务,线程池也会创建新的线程。
b、queueCapacity (线程等待队列数量)如果此刻所需线程数量大于corePoolSize ,任务将会进入等待队列。
c、maxPoolSize (线程池最大数量)如果此刻所需线程数量大于corePoolSize+queueCapacity 且小于maxPoolSize,线程池将创建线程用于任务执行。